С#: как отслеживать каждый файл, добавленный в каталог, и регистрировать информацию о файле в файле?

У меня есть папка (давайте назовем ее folder1), в которую постоянно добавляются новые файлы. Я веду файл журнала (содержащий полный путь и размер файла) для каждого файла, присутствующего в папке1. Этот файл журнала я буду использовать для копирования файлов из папки1 в папку2.

Это непрерывный процесс, для которого я бы написал службу Windows, но это на потом.

Для начала я думаю о наличии наблюдателя таймера/файловой системы, который будет отслеживать папку и искать изменения, а также цикл событий по списку файлов в папке1 и добавлять информацию о файле (т.е. путь и размер файла) в мой журнал файл (который будет обычным файлом .txt).

Мой вопрос, это эффективный способ сделать это? Есть ли быстрый или эффективный способ?

Любые отзывы или предложения приветствуются.


person Ash24    schedule 16.02.2012    source источник


Ответы (1)


Ознакомьтесь с классом FileSystemWatcher. Он предназначен для того, чтобы делать именно то, что вы ищете.

В частности, вы захотите обработать Created< /а> событие. В MSDN есть очень полный пример, который показывает, как это настроить.

person Yuck    schedule 16.02.2012
comment
Таков мой план. Но мой вопрос: есть ли другие способы добиться этого? - person Ash24; 16.02.2012
comment
Я думаю, вам следует спросить себя, почему вы не хотите использовать это. Он напрямую подключен к файловой системе, поэтому вы не пропустите ни одного события. С таймером или другими домашними решениями вы, вероятно, это сделаете. FileSystemWatcher был написан именно по этой причине - не надо изобретать велосипед. - person Yuck; 16.02.2012
comment
Истинный. Речь не идет об изобретении велосипеда, я знаю, что FileSystemWatcher делает свою работу, но после изучения документации и вопросов, заданных о FileSystemWatcher в stackoverflow, я скептически отношусь к его использованию. Ну, если там ничего нет, мне, возможно, придется жить с этим. Спасибо, что заглянули. - person Ash24; 16.02.2012