Windows Наблюдатель за файлами системы форм C# - PullRequest
0 голосов
/ 27 мая 2020

Я использую системный наблюдатель файлов в приложении Windows Form, он должен обнаруживать файлы * .mp4 в папке и подкаталогах и добавлять имя в сетку. Я также включил еще один наблюдатель файловой системы для мониторинга файлов * .txt в другой папке.

Он отлично работает для пары файлов, но больше не работает.

Я увеличил буфер до максимального , изменил фильтры уведомлений, но все равно после 3 или 4 ловли он останавливается. Моя цель - запускать приложение в течение всего дня, есть ли способ программно освободить буфер? Или есть другое свойство, которое могло бы помочь?

obs: я использую try , чтобы он не действовал дважды, как предложил Дэвид в { ссылка }

   try
      {
        fSW_Finalizados.EnableRaisingEvents = false;
        FoundFile(e.FullPath);
      }
      finally
      {
        fSW_Finalizados.EnableRaisingEvents = true;
      }

Спасибо.

1 Ответ

0 голосов
/ 27 мая 2020

НЕ ИСПОЛЬЗУЙТЕ FILESYSTEMWATCHER.

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

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

...