2015-12-18 2 views
2

У меня есть основная папка, которая содержит много подкаталогов. Внутри каждого подкаталога есть много подкаталогов.Петля через каждую подкаталоги в подкаталогах

Кто-нибудь знает, как я могу прокрутить множество вспомогательных каталогов в каждом подкаталоге?

Это мои коды в настоящее время:

if (Directory.Exists(MainDirectory)) 
{ 
    foreach (DirectoryInfo SubDir in new DirectoryInfo(MainDirectory).GetDirectories()) 
    { 
     foreach (FileInfo Image in SubDir.GetFiles()) 
     { 
      Image.Delete(); 
     } 
     SubDir.Delete(true);    
    } 
    Directory.Delete(MainDirectory, true); 
} 

Мои текущие коды будут только через цикл изображений из каждого подкаталога из основного каталога.

Пожалуйста, помогите мне в этом.

ответ

3

Вы можете использовать DirectorySearchOption.AllDirectories, или вы можете использовать рекурсивный звонок для этого, в зависимости от того, что подходит.

Если то, что вы действительно заинтересованы в файлы, а не вводить подкаталоги себя, метод, который вы можете использовать это Directory.GetFiles, что-то вроде этого:

string[] files = Directory.GetFiles(folderpath, "*", SearchOption.AllDirectories); //"*" denotes all file format 

возвращение string[], который содержит все Пути к файлам в данных folderpath, включая те, которые находятся в подкаталогах.

Вы можете изменить SearchPattern ("*" в примере) в соответствии с шаблоном поиска файлов (форматы), который вам нужен.

Если вам действительно нужно, однако, чтобы войти в подкаталог, вы можете создавать рекурсивные вызовы и в вызове, вы можете проверить, если каталог имеет дополнительную (глубже) папку с помощью DirectoryInfo.GetDirectories()

+0

Nicely объяснена +10. – Prabhat

+0

Добро пожаловать, надеюсь, что путь вас больше не беспокоит. – Prabhat

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