C#의 잘못된 디렉토리에서 파일을 찾고있는 StreamReader
-
19-09-2019 - |
문제
Windows 양식을 사용하는 프로그램이 있습니다. 그 양식에는 일부 디렉토리에서 파일을 열면 OpenFiledialog를 사용합니다. 그런 다음 다른 함수에서 StreamReader를 사용하고 StreamReader를 열기를 원하는 BIG/DEBUG 디렉토리에 2 차 파일이 있습니다. 그러나 OpenFiledialog로 첫 번째 파일을 열면 Streamreader는 평소와 같이 Bin/Debug 대신 해당 디렉토리의 두 번째 파일을 찾습니다.
그가 왜 그렇게하는지 아는 사람이 있고 어떻게 해결할 수 있습니까?
미리 감사드립니다.
그렉
해결책
그만큼 OpenFileDialog
그 행동이 있습니다. 응용 프로그램의 현재 디렉토리를 변경합니다. 이런 일이 발생하지 않도록 RestoreDirectory
의 속성 OpenFileDialog
.
다른 팁
열린 파일 대화 상자에서 디렉토리를 변경하면 응용 프로그램의 작업 디렉토리가 변경됩니다. 따라서 상대 경로를 사용하려고한다면 잘못된 장소에서 보입니다.
해결책은입니다 복원 사원.
완전한 파일 경로를 지정하지 않고 파일 이름 만 지정하면 파일이 현재 디렉토리에 있음을 의미합니다. OpenFileDialog를 사용하면 현재 디렉토리가 변경됩니다.
현재 디렉토리가 설정된 내용에 관계없이 파일에 액세스하려면 완전한 경로를 지정해야합니다. 당신이 사용할 수있는 Application.StartupPath
프로그램이있는 폴더로가는 길을 얻으려면
제휴하지 않습니다 StackOverflow