private async Task GetDirectoriesAsync(string folderPath, string fileFilter)
{
await Task.Run(() => GetDirectories(folderPath, fileFilter));
}
private void GetDirectories(string folderPath, string fileFilter)
{
try
{
var directories = Directory.EnumerateDirectories(folderPath);
foreach (var directory in directories)
{
GetDirectories(directory, fileFilter);
}
var files = Directory.EnumerateFiles(folderPath, fileFilter);
foreach (var file in files)
{
var extensionPath = Path.GetExtension(file);
if (string.IsNullOrEmpty(extensionPath))
{
fileItems.Add(file);
}
else if (extensionPath.Equals(".dcm"))
{
fileItems.Add(file);
}
}
}
catch (UnauthorizedAccessException)
{
PrintMessage($"Cannot access directory {folderPath}, skipping diirectory.");
}
catch (Exception)
{
}
finally
{
}
}
await GetDirectoriesAsync(@"D:\\", "*.*");