2012-12-13 3 views
1

Windows에서 임시 파일과 같이 정기적으로 삭제하는 일부 파일을 비우기 위해이 코드를 만들었습니다. 여러 친구가 동일한 응용 프로그램을 사용하고자 할 수 있으며 예외가 발견되지 않는 파일을 처리하는 가장 좋은 방법을 찾고 있습니다.처리 파일을 찾을 수 없음 예외?

어떻게하면 여러 사용자가 사용할 수 있도록 최선을 다할 수 있습니까?

foreach (string x in DirectoryList) 
{ 
    try { 
     Directory.Delete(x, true); 
    } 
    catch (DirectoryNotFoundException e) 
    { 
     // do something, or not... 
    } 
    FoldersCounter++; 
} 

foreach (string y in FileList) 
{ 
    try 
    { 
     File.Delete(y); 
    } 
    catch (FileNotFoundException e) 
    { 
     // do something, or not... 
    } 
    FilesCounter++; 
} 

는 최고 수준의 시도/캐치를 제거하고 단지를 통해 foreach 문주기를 보자

public void Deletefiles() 
    { 
     try 
     {     
      string[] DirectoryList = Directory.GetDirectories("C:\\Users\\user\\Desktop\\1"); 
      string[] FileList = Directory.GetFiles("C:\\Users\\user\\Desktop\\1"); 

      foreach (string x in DirectoryList) 
      { 
       Directory.Delete(x, true); 
       FoldersCounter++; 
      } 

      foreach (string y in FileList) 
      { 
       File.Delete(y); 
       FilesCounter++; 
      } 

      MessageBox.Show("Done...\nFiles deleted - " + FileList.Length + "\nDirectories deleted - " + DirectoryList.Length + "\n" + FilesCounter + "\n", "message", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      } 

     catch (Exception z) 
     { 
      if (z.Message.Contains("NotFound")) 
      { 
       MessageBox.Show("File Not Found"); 
      } 
      else 
      { 
       throw (z); 
      } 
      //throw new FileNotFoundException(); 
     } 
    } 

답변

0

단순히 시도/캐치에 Delete 전화를 포장 수, 가능한 한 적은 당신에게 코드를 수정 - try ing 및 catch 예외가 발생했을 때.

사용자에게 파일을 찾을 수 없다는 사실을 알릴 필요는 없습니다. 거기에 삭제 될 것이므로 거기에 없다는 사실은 프로그램의 결과에 실제로 영향을 미치지 않습니다.

이것은 리소스에 가장 친숙한 방법은 아니지만 문제를 일으키지 않는 간단한 응용 프로그램입니다.

+0

참으로 그런 파일이 없다면 사용자가 경고하기를 원하지 않습니다. 그게 내가 잡으려고 시도하는 것을 어떻게 사용하는지 알고 싶습니다 ... 시도를하지 않고 코드가 예외를 throw하고 ... 가르칩니다. 네가 할 수 있으면 친절하게 만드는 법? – xXghostXx

+0

나는 사용자가이 경우에 예외를 얻는 것을 피하기 위해 catch 섹션에 무엇을 써야하는지 알고 싶습니다. 내 프로그램이 계속 진행되도록하십시오 ... – xXghostXx

+0

@xXghostXx 당신이 돈을 쓴 이후로 아무것도 쓸 필요가없는 것 같습니다. 아무것도하고 싶지 않아. 그냥 아무것도하지 않기를 바란다고 설명하는 줄을 주석으로 남겨 두어, 장래에 왜 catch (FileNotFoundException e) 블럭을 비워 놓았는지 알 것이다. –

관련 문제