내 AppData 폴더에서 프로그램을 시작하는 소프트웨어를 만들었습니다.C#에서 동적 경로로 프로그램 시작하기
그러나 내가하고 싶었던 것은 그것이 동적 인 경로로 달리는 것입니다.
내가 사용하는 현재의 경로는 다음과 같습니다
new ProcessStartInfo(@"C:\Users\user\AppData\Local\SOFTWAREPROGRAM\File\program.exe")
나는 그것이 그러나 단지 '사용자'에 있지만의 AppData 폴더가 모든 사용자에서 실행되지하는 것을 가능하게합니다. 나는 디렉토리에서 탐색 할 때 작동하는 다음 경로를 시도했다.
new ProcessStartInfo(@"%USERPROFILE%\AppData\Local\SOFTWAREPROGRAM\File\program.exe")
그러나이 '파일을 찾을 수 없음'오류가 발생합니다.
어떻게 수정하나요? 다른 사용자들과 함께 작업하고 싶습니다.
편집
대답은 내 프로그램에서 작동하지만 개발하기 위해 노력하고있어 서비스에서 작동하지 않습니다. 나는 시도했다 :
(답)
new ProcessStartInfo(Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Local\SOFTWAREPROGRAM\File\program.exe"))
및
이 아닌 서비스에서 프로그램 (콘솔 프로젝트)에서 작동string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string specificFile = Path.Combine(folder, @"\Local\SOFTWAREPROGRAM\File\program.exe");
ProcessStartInfo(specificFile)
. 왜 이런거야?
I의 출력 specificFile 것은 실행하지만 그것은 단지 \Local\SOFTWAREPROGRAM\File\program.exe
가능한 복제 [i는 현재 사용자의 "응용 프로그램 데이터"폴더의 경로를 얻을 수있는 방법은?] (http://stackoverflow.com/questions/915210/how-can-i-get-the- current-users-application-data-folder 경로) – ASh
Environment.ExpandEnvironmentVariables를 통해 문자열을 실행하십시오. –
해당 폴더의 의도는 응용 프로그램 자체가 아닌 응용 프로그램 데이터를 저장하는 것입니다. – Crowcoder