2014-12-02 6 views
2

나는 특정 파일의 폴더 경로를 얻을 수있는 방법이 파일이 존재하지 않으면 FileNotFoundException (분명히)을 던집니다. 나는 if/else을 사용하여 사용자가 파일을 직접 찾을 수있는 오류를 잡으려고하지만, filePath이 유효한지 확인하기 위해 무엇을 사용해야하는지 잘 모르겠습니다.잡아라 "FileNotFoundException이"

예를 들어, 내가 사용할 수 없습니다

if (filePath == null) 

을 문자열을 검색하는 최고 방법은 항상 유효 여부 값을 반환 때문입니다. 이 문제를 어떻게 해결할 수 있습니까? 당신은 File.Exists 사용할 수 있습니다

+7

'경우 (! File.Exists (적인 filePath))' – MarcinJuraszek

+0

@MarcinJuraszek : 파일이되었다()가 true 및 파일 액세스 시도를 반환 존재 사이에 삭제 된 때 발생하는? – abatishchev

+1

** 예외를 잡아 ** 사용자가 새 파일을 선택할 수있게하는 이유는 무엇입니까? –

답변

1

: - File.Exists()가 시작 적절하지만, 파일에 액세스 할 수 없게됩니다 경우 예외를 무시하는 것은 여전히 ​​오류 상태로 이어질 수 있음을 유의하시기 바랍니다

if(File.Exists(filePath)) 
{ 
    //Do something 
} 
else 
{ 

} 
2

을 (네트워크 드라이브, 파일을 열 감소 다른 프로그램에 의해, 삭제됨 등)을 File.Exists()new StreamReader() 사이의 시간에 호출합니다.

0
string filePath = Path.Combine(Environment.GetFolderPath(
       Environment.SpecialFolder.MyDocuments), "file.txt"); 

if(!File.Exists(filePath)) 
{ 
/* browse your file */ 
} 
else 
{ 

     StreamReader rdr = new StreamReader(filePath); // "C:\Users\<user>\Documents\file.txt" 
     string myString = rdr.ReadToEnd(); 
} 
관련 문제