2012-12-24 6 views
2

Я хочу написать приложение как обрабатывать файлы и прослушивать корень каталога и добавлять в мое приложение только файлы, созданные за lase 2 дня.Слушает файловой системе

  1. FileSystemWatcher Класс можно слушать только в один каталог или может сделать это со всеми подкаталоги под моей корневой папке?

  2. , что является лучшим вариантом для поиска только файлов, которые создали в lase 2 дня? (FileInfo.CreationTime?)

ответ

2

Для второго вопроса вы можете перебирать файлы в каталоге и проверять даты их создания.

foreach (FileInfo fi in directory.GetFiles()) 
{ 
    if (fi.CreationTime.Date <= DateTime.Today.AddDays(-2)) 
    { 
     //process file 
    } 
} 

В качестве альтернативы, вы можете использовать LINQ

var recentFiles = directory.GetFiles().Where(x => 
           x.CreationTime.Date <= DateTime.Today.AddDays(-2)) 
           .Select(x => x.Name) 
           .ToList(); 

Вы хотите эталонные разницы в производительности, но для небольшого количества файлов, я сомневаюсь, что бы существенная разница.

+0

благодарит за вашу помощь! – user1269592

+0

Добро пожаловать :) – keyboardP

2

По MSDN:

Используйте FileSystemWatcher, чтобы следить за изменениями в указанном каталоге. Вы можете следить за изменениями в файлах и в подкаталогах указанного каталога.

Итак, чтобы ответить на ваш первый вопрос, да, он может сделать это со всеми подкаталогами вашей корневой папки.

+2

Обратите внимание, что 'FileSystemWatcher' не работает в Windows 8, как ожидалось. –

+0

благодарит за вашу помощь! – user1269592

Смежные вопросы