У меня есть файловый сервер, который сопоставлен с буквой сетевого диска W. Он имеет 732 основных папки и подпапки и много файлов.Я сопоставил виртуальный каталог с этим диском и назвал его «Documents».
Теперь я хочу проверить, сколько времени требуется, чтобы найти только те папки, в которых содержится «final».я создал консольное приложение, а не веб-приложение, и написал ниже код, который дал мне очень медленные результаты, что нежелательно.Пожалуйста, найдите ниже код
DateTime startdatetime = DateTime.Now;
var dirs = from dir in
Directory.EnumerateDirectories("W:\\", "*Final*", SearchOption.AllDirectories)
select dir;
foreach (var dir in dirs)
{
Console.WriteLine(dir);
}
DateTime EndDate = DateTime.Now;
TimeSpan t = EndDate - startdatetime;
Console.WriteLine(t.Minutes);
Console.ReadLine();
Это дало мне только папки, а не имена файлов за 5 минут при первом запуске и 6 минут во втором.Старый код, который я использовал для получения только папок, был
DateTime startdatetime = DateTime.Now;
string[] dirs =
Directory.GetDirectories("W:\\", "*Final*", SearchOption.AllDirectories);
foreach (var dir in dirs)
{
Console.WriteLine(dir);
}
DateTime EndDate = DateTime.Now;
TimeSpan t = EndDate - startdatetime;
Console.WriteLine(t.Minutes);
Console.ReadLine();
Приведенный выше код дал мне список папок за 6-7 минут.Приведенный выше код для объединенных файлов и папок дал результаты за 12 минут.Это огромное снижение производительности в сети.
Любая идея, ребята, как уменьшить этот штраф?Я застрял здесь.