2013-12-15 4 views
0

내 로컬 PC의 모든 txt 파일을 특정 위치로 복사 할 수있는 프로그램을 작성하고 싶습니다. 지금까지 아무런 문제가 없지만 디렉토리를 열 수있는 권한이 있습니다. 일부 디렉토리는 UnauthorizedException을 발생시킵니다. 먼저 액세스하여 파일을 읽을 수 있습니까? 이것은 iam이 지금까지 해왔 던 것입니다 :디렉토리에 대한 액세스 얻기

public List<FileInfo> SearchFiles(List<string> pattern) 
{ 
    List<FileInfo> files = new List<FileInfo>(); 

    foreach (DriveInfo drive in DriveInfo.GetDrives()) 
    { 
     var dirs = from dir in drive.RootDirectory.EnumerateDirectories() 
        select new 
        { 
         ProgDir = dir, 
        }; 

     foreach (var di in dirs) 
     { 
      try 
      { 
       foreach (string muster in pattern) 
       { 
        foreach (var fi in di.ProgDir.EnumerateFiles(muster, SearchOption.AllDirectories)) 
        { 
         try 
         { 
          files.Add(fi); 
         } 
         catch (UnauthorizedAccessException) 
         { 

         } 
        } 
       } 
      } 
      catch (UnauthorizedAccessException) 
      { 
      } 
     } 
    } 

    return files; 
} 

문자열이있는 목록은 메서드가 검색하는 패턴을 제공합니다. 예를 들어 모든 txt 파일과 이름이 뭐니 뭐니?

답변

0

응용 프로그램이 실행될 때 권한을 승격 해 볼 수 있습니다.

How to request administrator permissions when the program starts?

+0

좋은 생각하지만 그것은 작동하지 않는 것 같습니다. 예를 들어 "Documents & Settings"디렉토리에 액세스하려면 UnauthorizedAccess Exception이 표시됩니다. – Sebi

관련 문제