Перечислить рекурсивно все файлы и папки по заданному пути?

Возможный дубликат:
Как рекурсивно перечислить все файлы в каталоге на С#?

Я хочу перечислить "подпуть" файлов и папок для папки передачи (путь)

скажем, у меня есть папка C:\files\folder1\subfolder1\file.txt

если я дам функцию c:\files\folder1\

Я получу subfolder1 subfolder1\file.txt

Ответ 1

Попробуйте что-то вроде этого:

static void Main(string[] args)
{
    DirSearch(@"c:\temp");
    Console.ReadKey();
}

static void DirSearch(string dir)
{
    try
    {
        foreach (string f in Directory.GetFiles(dir))
            Console.WriteLine(f);
        foreach (string d in Directory.GetDirectories(dir))
        {
            Console.WriteLine(d);
            DirSearch(d);
        }

    }
    catch (System.Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

Ответ 2

Вы можете использовать метод Directory.GetFiles для отображения всех файлов в папке:

string[] files = Directory.GetFiles(@"c:\files\folder1\", 
    "*.*",
    SearchOption.AllDirectories);

foreach (var file in files)
{
    Console.WriteLine(file);
}

Обратите внимание, что параметр SearchOption может использоваться для управления рекурсивным поиском (SearchOption.AllDirectories) или SearchOption.TopDirectoryOnly).

Ответ 3

String[] subDirectories;
String[] subFiles;
subDirectories = System.IO.Directory.GetDirectories("your path here");
subFiles = System.IO.Directory.GetFiles("your path here");

Ответ 5

Я помню решение подобной проблемы не так давно на SO, хотя это было в VB. Здесь question.