C# самый старый файл как ?

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
нашел подсказку:
C#:
var oldestFile = FastDirectoryEnumerator.EnumerateFiles(@"c:\windows\system32").OrderBy(f => f.CreationTime).First();
project.SendToLog(oldestFile);
но ругается на
The name 'FastDirectoryEnumerator' does not exist in the current context

Может кто поможет ?
 
Последнее редактирование:

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
сделал так
C#:
var oldestFile = new DirectoryInfo(@"c:\windows\system32").GetFiles()
           .OrderBy(f => f.LastWriteTime).First();
return oldestFile;
Работает.

Для FastDirectoryEnumerator я так понял надо подключать стороннюю библиотеку, но как не понял.
Ссылка на библиотеку https://github.com/rickparrish/RMLib/blob/master/FastDirectoryEnumerator.cs

разница в скорости большая https://stackoverrun.com/ru/q/502971#2399251

может кто таки подскажет как.
 
Последнее редактирование:
  • Спасибо
Реакции: Dmitriy Ka

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Взял исходники тут - https://www.codeproject.com/Articles/38959/A-Faster-Directory-Enumerator
Вставил содержимое файла FastDirectoryEnumerator.cs в Общий код (только убрал повторяющиеся usnig'и). Заработало.

C#:
var oldestFile = CodeProject.FastDirectoryEnumerator.EnumerateFiles(@"c:\windows\system32").OrderBy(f => f.CreationTime).First();
project.SendInfoToLog(oldestFile.Path);
 

Вложения

  • Спасибо
Реакции: luk911 и Alexmd

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Круть, спасибо за помощь, все получилось.
Добавлю проект с примером, чтоб не забыть.
 

Вложения

ruthless

Client
Регистрация
13.02.2017
Сообщения
226
Благодарностей
67
Баллы
28
Пробовал так. Не работает:
var oldestFile = CodeProject.FastDirectoryEnumerator.EnumerateFiles(@"D:\Рабочий стол").OrderBy(f => f.CreationTime).First();
project.Variables["old_profile"].Value(oldestFile.Path);
Ребят. Все отлично работает. Спасибо за решение. Но результат выводится в лог, а нужно в переменную, последнюю строчку пробовал подставлять переменную, вместо SendInfoToLog, не вышло. Подскажите пожалуйста.
 

ruthless

Client
Регистрация
13.02.2017
Сообщения
226
Благодарностей
67
Баллы
28
Пробовал так. Не работает:
var oldestFile = CodeProject.FastDirectoryEnumerator.EnumerateFiles(@"D:\Рабочий стол").OrderBy(f => f.CreationTime).First();
project.Variables["old_profile"].Value(oldestFile.Path);
Ребят. Все отлично работает. Спасибо за решение. Но результат выводится в лог, а нужно в переменную, последнюю строчку пробовал подставлять переменную, вместо SendInfoToLog, не вышло. Подскажите пожалуйста.
Вопрос исчерпан. Не силен в C#, поэтому пришлось потупить.
Решение:
var oldestFile = CodeProject.FastDirectoryEnumerator.EnumerateFiles(@"D:\Рабочий стол").OrderBy(f => f.CreationTime).First();
project.Variables["old_profile"].Value = (oldestFile.Path);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)