2013-11-20 5 views
-3

Мне нужно найти путь к папке. Скажем, имя папки Test. Если мое приложение установлено на c:\drive, то в этом случае папка Test может находиться на любом уровне в c:\drive, а страница, в которой мне нужен путь, также может быть на любом уровне в c:\drive.найти путь к папке в приложении C# windows

Благодарю вас за помощь.

+0

Возможный дубликат http://stackoverflow.com/questions/14229203/search-for-a-folder-by-its-name-in-c-sharp-without-specifying-the-path –

ответ

1

Попробуйте это.

static void Main(string[] args) 
    { 

     string pathToDirctory = @"C:\\"; 
     string baseDirectory = pathToDirctory; 


     string path = SearchAllFolders(pathToDirctory,"Test"); 


    } 

    private static string SearchAllFolders(string path, string search) 
    { 
     string folderPath = string.Empty; 
     try 
     { 
      if ((File.GetAttributes(path) & FileAttributes.ReparsePoint) 
       != FileAttributes.ReparsePoint) 
      { 
       foreach (string folder in Directory.GetDirectories(path)) 
       { 
        if (folder.Contains("RECYCLE.BIN")) 
        { 
         continue; 
        } 
        string p = Path.GetFileName(folder); 

        if (p.Equals(search)) 
        { 
         return folder; 
        } 
        else 
        { 
         string f = SearchAllFolders(folder ,search); 
         if (f != null) 
         { 
          return f; 
         } 
        } 

       } 
      } 
     } 
     catch (UnauthorizedAccessException) { } 

     return null; 
    } 
+0

«Тест» Может или может не быть в «драйвере». он может быть на любом уровне в «C: \\ drive \\» – user1282615

+0

Значит, вы хотите найти папку по имени на диске C: \\. –

0

Попробуйте этот код, как вы код в веб-приложение ASP.NET

string baseDirectory = AppDomain.CurrentDomain.BaseDirectory; 
foreach (string dir in Directory.GetDirectories(baseDirectory, "Test", SearchOption.AllDirectories)) 
{ 
    // dir will be a path of "Test" folder. 
    // You will get more than one path if it found more than one folder names Test. 
} 

BASEDIRECTORY будет хранить путь к папке установки приложения.

+0

Это вызовет исключение «UnAuthorizedAccessException». –

+0

Это исключение доступа, исключающее, что вы должны установить разрешение для своей папки, чтобы разрешить доступ. – Alice

+0

См. Также http://technet.microsoft.com/en-us/library/bb727008.aspx – Alice

Смежные вопросы