2013-10-25 2 views
0

파일의 존재를 감지하려고하는데 C#에서 System.IO.File.Exists 함수를 사용하고 있으므로 File.Exists("file.txt");은 TRUE를 반환하지만 파일이 없습니다!! 여기 무슨 일입니까?C# File.Exists가 존재하는 파일에 대해 true를 반환합니다.

+0

프로젝트의 기본 폴더를 확인 했습니까? 전체 경로를 시도하십시오. –

+3

'Environment.CurrentDirectory'를 확인하십시오. 나는 그것이 당신이 생각하는 것이 아니라고 생각합니다. –

+0

파일이 존재하지 않습니까? 어쩌면 그것은 숨겨진 파일 일 수 있으며 그 이유는 그것을 볼 수 없기 때문입니다. –

답변

5

메서드가 true를 반환하면 파일이 존재합니다.

그러나 File.Exists 명령과 같은 위치를보고있는 것은 아닙니다.

MSDN

에서 경로 파라미터는 상대 또는 절대 경로 정보를 지정하는 것이 허용된다. 상대 경로 정보는 현재 작업 디렉토리와 관련하여 해석됩니다.

파일의 전체 경로를 지정하지 않았으므로 현재 작업 디렉토리를 사용하여 파일이 존재하는지 확인합니다. 그리고 거기에 존재할 가능성이 있습니다.

2

fileName 만 사용하면 실행중인 동일한 로컬에서 찾을 수 있습니다. 샘플의 경우 전체 경로를 전달해야합니다.

if (File.Exists("C:\\temp\\file.txt")) 
{ 
    // exists, use it 
} 
else 
{ 
    // does not exists 
} 
+0

맞습니다. 현재 경로를 지정하면 작동합니다. – AlexandruC

+0

나에게 적합하지 않습니다. 나는 파일이 존재하지 않는다는 사실을 알고있다. 왜냐하면 그 파일이 존재하지 않기 때문이다. 내 경로는'C : \ myApp \ Data \ myApp.mdf'입니다. – Ortund

관련 문제