Фильтр DirectoryInfo файлов по дате в asp.net - PullRequest
3 голосов
/ 09 октября 2011

Я заполняю элемент управления сеткой данных, используя файлы по указанному пути (DirectoryInfo).
Я хотел бы отфильтровать файлы на основе указанного пользователем диапазона дат (даты начала и окончания).

Во время поиска S / O я обнаружил эту запись, но я получаю сообщение об ошибке на DateComparer ( "DateComparer" является типом и не может использоваться в качестве выражения.")

Любые другие предложения о том, как фильтровать по дате?

Вот мой код:

        Dim dirInfo As New DirectoryInfo(strDirectoryPath)
        Dim dStartDate As DateTime = "03/01/2011"
        Dim dEndDate As DateTime = "6/30/2011"
        Dim Files As FileInfo = dirInfo.GetFiles().Where(Function(Files) Files.CreationTime >= (dStartDate) AndAlso Files.CreationTime <= dEndDate)

            datagrid.DataSource = Files
            datagrid.DataBind()

1 Ответ

2 голосов
/ 09 октября 2011
DateTime your_start_date = new DateTime(2011,1,1);
DateTime your_end_date = new DateTime(2011,10,1);
FileInfo [] files = new DirectoryInfo(@"c:\").GetFiles().Where(x=>x.CreationTime>=(your_start_date) && x.CreationTime<=(your_end_date)).ToArray();

foreach(var item in files)
{
 Console.WriteLine(item.Name);
}

На моем тестовом кейсе распечатывается:

copy_one.jpg
copy_one_one.jpg
copy_one_one_one.jpg
hiberfil.sys
one.jpg
pagefile.sys
PcapDotNet.snk

ОБНОВЛЕНИЕ (версия VB):

Dim your_start_date As New DateTime(2011, 1, 1)
Dim your_end_date As New DateTime(2011, 10, 1)
Dim files As FileInfo() = New DirectoryInfo("c:\").GetFiles().Where(Function(x) x.CreationTime >= (your_start_date) AndAlso x.CreationTime <= (your_end_date)).ToArray()

For Each item As FileInfo In files
    Console.WriteLine(item.Name)
Next
...