Очевидно, вы не можете обрабатывать список дат без перебора, но вы можете используйте Linq для создания последовательности в первую очередь, например:
var dateInfo =
Directory.EnumerateFiles(directoryName)
.Select(filename => new FileInfo(filename))
.Select(info => new {info.Name, info.CreationTime});
Это даст вам список FullName
/CreationTime
пар, где FullName
полный путь к файлу, и CreationTime
время создания файла.
Вы можете обработать его следующим образом:
foreach (var item in dateInfo)
Console.WriteLine($"{item.FullName} created on {item.CreationTime}");
Если вы просто хотите (уникальный) даты, что файлы были созданы на:
var uniqueDates = dateInfo.GroupBy(x => x.CreationTime.Date).Select(y => y.Key);
foreach (var date in uniqueDates)
Console.WriteLine(date);
Наконец, если вам нужны даты, чтобы быть скомандовал:
var uniqueDates =
dateInfo.GroupBy(x => x.CreationTime.Date)
.Select(y => y.Key)
.OrderBy(z => z);
(И использовать .OrderByDescending()
для обратной последовательности, конечно.)
Если вы предпочитаете Linq синтаксис запроса:
var uniqueDates =
from date in dateInfo
group date by date.CreationTime.Date into g
orderby g.Key
select g.Key;
или положить всю вещь в одном запросе Linq (возможно получение немного unreadble здесь, так что вы можете сохранить его в виде отдельных запросов, но это для полноты):
var uniqueDates =
from date in
from file in Directory.EnumerateFiles(directoryName)
select new FileInfo(file).CreationTime
group date by date.Date into g
orderby g.Key
select g.Key;
Неясно, являются ли даты * в * файлах или только в файлах файловой системы. Вы еще что-нибудь пробовали? –
Вам нужно получить свойства файла, я покажу, как это сделать в дубликате: 'DateTime CreatedDate = Convert.ToDateTime (GetSpecificFileProperties (filePath, 4));' Еще один способ вы можете сделать это с помощью [FileInfo.GetCreationTime] (https : //msdn.microsoft.com/en-us/library/system.io.file.getcreationtime (v = vs.110) .aspx), а другой - DOS Command 'dir'. –
В любом ответе на этот дублированный вопрос нет запроса linq, а также ответ использует оболочку, которая является полным излишним (и ненужным) для вопроса OP. –