Я пишу приложение C# с .NET 4 для чтения и обработки файлов данных (* .dat) из списка каталогов.Быстрый ввод-вывод, чтобы проверить, содержит ли каталог файлы
В настоящее время, я проверяю, если каталог содержит файлы с помощью следующей функции:
private bool FilesPresent()
{
string[] DIRS = Directory.GetDirectories(dataFileDirectoryPath, "*.*", SearchOption.TopDirectoryOnly);
foreach (string d in DIRS)
{
string[] FILES = Directory.GetFiles(d, "*.*", SearchOption.AllDirectories);
if (FILES.Length > 0) { return true; }
}
return false;
}
Я также попробовал некоторые альтернативные решения из следующего поста: How to quickly check if folder is empty (.NET)?
Важно отметить, что некоторые из каталогов имеют более 1 000 000 файлов. Даже чтение миллионов имен файлов в строку [] занимает много времени.
Как я могу реализовать это по-другому, чтобы он работал быстрее?
Проведение просто; Я просто хотел бы узнать самый быстрый способ проверить, не каталог ли пуст. В настоящее время я не заинтересован в получении имен файлов.
Возможный дубликат [Как быстро проверить, пуста ли пустая (.NET)?] (Http://stackoverflow.com/questions/755574/how-to-quickly-check-if-folder-is-empty- net) – Haris
Я не думаю, что вы получите быстрее, чем лучший ответ в этом дубликате. Почему это не подходит? – Sayse
'Directory.EnumerateDirectories (dataFileDirectoryPath," *. * ", SearchOption.TopDirectoryOnly). Любой (d => Directory.EnumerateFiles (d," *. * ", SearchOption.AllDirectories) .Any())' –