Остановить создание события create для элемента управления Filewatcher для автоматически сгенерированного временного файла исходного содержимого - PullRequest
2 голосов
/ 22 октября 2011

Я использую элемент управления filewatcher в своем приложении winform.Я выполняю задачу загрузки, обрабатывая ее события.

Теперь проблема в том, что когда я создаю любой новый документ в каталоге (, который отслеживается под управлением FileWatcher ), запускается функция загрузки, и он загружает документ. ( Какой я хочу ) но при создании нового документа в этой системе каталогов генерируется временный файл, который также загружается на сервер ( Что мне не нужно ).

Например, если я создаю новый документ Word с именем Microsoft Word Document.docx в каталоге xyz ( Этот каталоготслеживается под управлением FileWatcher ), а затем система создает другой файл, например ~ $ w Microsoft Word Document.docx для этого документа.и это оба файла загружаются на сервер.

Здесь я взял пример для файла слов.Загружаемый контент может быть любым ( не исправлено ).

Ответы [ 2 ]

2 голосов
/ 22 октября 2011

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

FileAttributes attr = System.IO.File.GetAttributes(e.FullPath);

FileInfo fi = new FileInfo(e.FullPath);     

if ((attr & FileAttributes.Hidden) == FileAttributes.Hidden || fi.Extension == ".tmp")
{
     return;
}

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

2 голосов
/ 22 октября 2011

Можете ли вы не просто обнаружить временное имя файла и проигнорировать его? Вы можете обнаружить, что у него есть некоторые атрибуты, которые делают его явно не обычным файлом, или вы можете просто определить соглашение об именах, которое использует Word. (Насколько вероятно, что вам действительно понадобится файл, начинающийся с "$"?)

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