2013-02-17 6 views
0
using (StreamReader sr = new StreamReader("gold.txt")) 
     { 

      text.Text = sr.ReadToEnd(); 
     } 

왜이 오류가 발생합니까? 간단히 텍스트 파일을 만들고 gold.txt를 읽도록 새로운 StreamReader를 만들려고했습니다.StreamReader가 txt 파일을 읽으려고 할 때 FileNotFound 예외가 발생합니다.

+5

응용 프로그램의 작업 경로는 무엇입니까? 응용 프로그램의 현재 디렉토리는 무엇입니까? (반드시 동일한 것은 아님) 어디에서 (응용 프로그램과 관련하여) "gold.txt"입니까? 전체 파일 경로를 사용해 보셨습니까? 어떤 사용자 계정이 응용 프로그램을 사용하고 있습니까? 파일에 액세스 할 수 있습니까? "gold.txt"가 VS 프로젝트에 있으면 응용 프로그램과 함께 배포 할 예정입니까? –

+2

최근 다른 질문과 어떻게 다른가? - http://stackoverflow.com/questions/14923652/c-sharp-im-getting-a-filenotfound-exception-when-using-streamreader-to-read-a-t? –

답변

1

것은 확인이 재산 "복사 to Output Directory "가"Copy new "또는"Copy always "로 설정됩니다.

희망이 도움이됩니다. 나는이 점에 대해 여러 번 실패했다 : P

또한 읽기 전에 File.Exists ("gold.txt")가 있는지 항상 확인하는 것이 좋다. 필자는 File.OpenText 또는 비슷한 것을 사용하는 경향이 있는데, 파일로 작업하는 것이 더 분명하게 느껴지기도합니다.

닫기();

+0

고맙습니다. 너는 나에게 너무 많은 도움을 주었다. 나는이 문제로 몇 주간 붙어 있었다. 정말 고맙습니다... –

1

매개 변수로 StreamReader 정규화되지 않은 경로를 지정하면 응용 프로그램의 작업 디렉토리에서 파일을 찾습니다. 파일이 거기에없는 경우, 당신은 아마 예를 들어, 그것에게 완전한 경로를 제공 할 것 :

StreamReader sr = new StreamReader(@"C:\Path\To\gold.txt") 
0

을 시스템이 기반으로 파일을 찾을 수 없기 때문에이 오류가 발생하는 이유는 경로를 StreamReader에 전달했습니다. 아마도 파일이 응용 프로그램이 기본적으로 찾고있는 디렉토리에 없기 때문일 수 있습니다.

이미 전체 경로를 사용하거나 파일을 올바른 위치에 두는 것이 단기적으로 문제를 해결해야한다고 제안했기 때문입니다. 그러나 어떤 시점에서 당신은 아마이 같은 파일을 찾습니다 사용자에게 물어보고 싶은 것 : 당신은 비주얼 스튜디오 프로젝트에서 "gold.txt"이 경우

 OpenFileDialog openFileDialog = new OpenFileDialog(); 

     if (openFileDialog.ShowDialog() == DialogResult.OK) 
     { 
      string filePath = openFileDialog.FileName; 

      using (StreamReader sr = new StreamReader(filePath)) 
      { 
       text.Text = sr.ReadToEnd(); 
      } 
     }  
관련 문제