C # / .NET에 파일이 있는지 확인하는 방법?


186

C #에서 해당 파일이 존재하는지 파일에 대한 경로가 포함 된 문자열을 테스트하고 싶습니다 ( -ePerl 또는 os.path.exists()Python 의 테스트 와 같은 것 ).

답변:


303

사용하다:

File.Exists(path)

MSDN : http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

편집 : System.IO에서


14
File.Exists (path)는 파일이 존재하더라도 호출자를 읽을 수있는 권한이없는 경우에도 false를 반환합니다. 이런 종류의 상황을 처리하고 호출자가 읽을 수없는 경우에도 파일이 존재하는지 확인하는 다른 방법이 있습니까?
ADTC

3
@ADTC : 보안의 관점에서 보면 개발자의 관점에서 보면 그렇게 복잡하게 작동 할 수 있습니다. 이 경우 파일을 만들려고하면 예외가 발생합니까?
user276648

2
@ADTC는 방금 넘어졌고 드롭 박스 디렉토리를 언급 할 수 있다고 생각했습니다. 작성 또는 쓰기 권한은 있지만 읽기 권한은없는 곳에 설정할 수 있습니다. 이 질문과 직접 ​​관련이있는 것이 아니라 생각하는 것만 큼 이상하지 않다는 것입니다.
Ukko

1
참고 : File.Exists는 경로 케이싱이 실제로 G :에있는 것과 정확히 일치하지 않으면 Google 드라이브 파일 스트림 G : 드라이브에서 False를 반환합니다. 일반적으로 실제 드라이브 케이스는 중요하지 않으므로 Exists 방법에 문제가 있습니까?
CTZStef

1
@CTZStef는 프레임 워크 방법이 아닌 Google의 가상 드라이브의 단점입니다.
유진 Mayevski '콜백



4

입력으로 전체 경로를 제공하십시오. 상대 경로를 피하십시오.

 return File.Exists(FinalPath);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.