Будет ли Directory.EnumerateFiles работать в папке, в которую постоянно добавляются новые файлы? - PullRequest
1 голос
/ 27 февраля 2012

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

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

Я собирался использовать GetFiles (), но обнаружил EnumerateFiles (), который выглядит лучше, так как он не ждет полного заполнения массива строк, прежде чем сможет работать с содержимым.

Сможет ли EnumerateFiles справиться с тем фактом, что новые файлы будут постоянно записываться в эту папку?Как он будет себя вести?

Мой процессор будет работать как служба Windows, поэтому, когда он достигнет конца файлов в Enumerable, он снова запустится через x секунд.

Ответы [ 2 ]

3 голосов
/ 27 февраля 2012

Вы можете использовать наблюдателя файловой системы:

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

и прослушивать событие Changed или Created.

0 голосов
/ 27 февраля 2012

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

FileWatcher Как уже упоминалось в первом ответе, это путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...