как определить, когда файл помещен в одну из моих папок - PullRequest
1 голос
/ 26 февраля 2011

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

как можноЯ обнаружил это событие, можешь ли ты предложить мне книгу о событиях или страницу, может быть, дай мне пример.

Ответы [ 3 ]

5 голосов
/ 26 февраля 2011

Вы хотите использовать FileSystemWatcher .

void foo()
{
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = "C:\\temp";
    watcher.Changed += watcher_Changed;
    watcher.Created += watcher_Created;
    watcher.Filter = "*.pdf";
}

void watcher_Created(object sender, FileSystemEventArgs e)
{
   //handle created
}

void watcher_Changed(object sender, FileSystemEventArgs e)
{
    //Handle changed
}
2 голосов
/ 26 февраля 2011

, как упоминалось ранее, FileSystemWatcher - это путь.

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

Также обратите внимание, что Changed событие, скорее всего, будет вызвано несколько раз, если другой процесс копирует файл в папке, которую вы смотрите.Используйте NotifyFilter, чтобы уменьшить количество вызываемых событий.

0 голосов
/ 26 февраля 2011

Вы можете использовать класс FileSystemWatcher для просмотра этой папки на наличие файлов XML.

...