는 다음 코드를 포함하는 C# 응용 프로그램이 있습니다실행중인 응용 프로그램의 현재 디렉토리가 변경 될 수 있습니까?
string file = "relativePath.txt";
//Time elapses...
string contents = File.ReadAllText(file);
이 잘 작동, 대부분의 시간. 파일은 앱이 시작된 디렉토리를 기준으로 읽습니다. 그러나 테스트에서 약 5 시간 동안 방치하면 "C : \ Documents and Settings \ Adminstrator \ relativePath.txt"를 찾을 수 없다는 메시지가 FileNotFoundException
으로 표시됩니다. 그래도 파일을 읽는 작업이 즉시 실행되면 적절한 위치에서 파일을 읽습니다.이 파일은 "C : \ foo \ relativePath.txt"라고합니다.
무엇이 제공됩니까? 그리고, 최선의 해결책은 무엇입니까? 파일을 Assembly.GetEntryAssembly().Location
에 대해 해결 하시겠습니까?
응용 프로그램을 시작한 디렉토리가 현재 작업 디렉토리로로드됩니다. 이것을 완벽하게 허용 할 수 있습니다. 그리고 코드의 모호한 부분이 이것을하면, 당신은 결국이 행동을 끝낼 것입니다. 상대 경로를 절대 경로로 변환합니다. – workmad3