2013-05-09 4 views
1

내 응용 프로그램을 실행할 때, 내가 처음 여기에 "사용"이 오류를 얻을 :과정은 파일 XXX에 액세스 할 수 없습니다

public void CreateFile(string filePath) 
    { 

     //Create File 
     string fileLoc = filePath; 

     FileStream fs = null; 
     if (!File.Exists(fileLoc)) 
     { 
      using (fs = File.Create(fileLoc)) 
      { 

      } 
     } 

    } 

    public void WriteFile(string filePath) 
    { 
     //Write to File 
     string fileLoc = filePath; 

     if (File.Exists(fileLoc)) 
     { 
      using (StreamWriter sw = new StreamWriter(fileLoc)) 
      { 
       sw.Write("Some sample text for the file"); 
      } 
     } 
    } 

파일을 해당 디렉토리에 이전했습니다에서 열어서 읽었지만 StreamReader는 읽은 후에 닫혔습니다. 그게이 오류와 어떤 의미가 있는지 확실하지 않습니다. 감사.

+0

해당 코드에 문제가없는 것 같습니다. 응용 프로그램이 이미 실행 중이거나 다른 응용 프로그램에서 파일을 열 수 있습니까? – drch

+0

모든 바이러스 검사 프로그램을 끄면 문제가 재현됩니까? 이 증상은 종종 지나치게 공격적인 바이러스 검사 프로그램과 관련이 있습니다. –

답변

0

filePath 또는 다중 스레드 경쟁 조건과 같은 디렉터리 경로를 사용하려는 경우와 같이 오류가 발생한 줄 앞에 File.Exists이 표시되어 있는지 확인하십시오.

+1

다른 프로세스가 사용하고있을 때 _ ... _ 특정 방식으로 _. 즉, 핸들이 적절하게 생성 될 때 파일을 완벽하게 공유 할 수 있습니다. –

+0

@GrantThomas 사실, 내 대답을 명확히했습니다 : ... 다른 프로세스가 잠겨있을 때. –

+0

고마워요! 나는 이것을 조사 할 것이다. 그러나 필자는 파일을 만드는 것에 대해 걱정할 필요가 없으며, 파일을 다르게 작성하는 것에 대해 걱정할 필요가 없습니다. 맞습니까? – user2340818

관련 문제