Класс DirectoryInfo имеет полезные методы для этого.
var dir = new DirectoryInfo(@"C:\myBaseFolder");
FileInfo[] allfiles = dir.GetFiles("*.*", SearchOption.AllDirectories);
Это будет автоматически включать все подкаталоги.
Вы можете воспользоваться таким ключевым словом await
, как это
private static async Task<FileInfo[]> GetFileList(string rootFolderPath)
{
FileInfo[] allfiles;
await Task.Run(() => {
var dir = new DirectoryInfo(rootFolderPath);
allfiles = dir.GetFiles("*.*", SearchOption.AllDirectories);
});
return allfiles;
}
, и назвать его так:
FileInfo[] allFiles = await GetFileList(@"\myfolder");
и не забудьте добавить async
ключевое слово для метода, выполняющего этот вызов.