У меня есть программа, которая работает как служба Windows; он обрабатывает файлы в определенной папке. Поскольку это сервис, он постоянно отслеживает папку для новых файлов, которые были добавлены. Часть задания программы состоит в том, чтобы выполнять сравнение файлов в целевой папке и флажках, не соответствующих файлам. То, что я хотел бы сделать, - это определить, выполняется ли операция копирования и когда она завершена, так что файл не будет преждевременно помечен, если файл соответствия еще не скопирован в целевую папку.C# - Ожидание завершения операции копирования
То, что я собирался сделать, это использовать FileSystemWatcher для просмотра целевой папки и посмотреть, происходит ли операция копирования. Если есть, я помещаю основной поток моей программы в режим ожидания, пока операция копирования не завершится, а затем продолжите выполнение операции в папке, как обычно. Я просто хотел получить некоторое представление об этом подходе и посмотреть, действительно ли это; если у кого-то еще есть какие-то другие уникальные подходы к этой проблеме, было бы весьма полезно.
UPDATE:
Спасибо всем за ваши предложения
UPDATE 2:
Прошу прощения за путаницу, когда я говорю, целевой каталог, я имею в виду исходную папку, содержащую все файлы, которые я хочу обрабатывать. Часть функции моей программы заключается в том, чтобы скопировать структуру каталогов исходного каталога в целевой каталог и скопировать все допустимые файлы в этот целевой каталог, сохраняя структуру каталогов исходного исходного каталога, то есть пользователь может копировать папки, содержащие файлы в исходный каталог. Я хочу предотвратить ошибки, гарантируя, что если новый набор папок, содержащих больше подпапок и файлов, будет скопирован в исходный каталог для обработки, моя программа не начнет работать в целевом каталоге, пока процесс копирования не завершится.
+1. Это очень хороший вопрос. Я еще не придумал подход, который не похож на хак. – David
Этот вопрос схож и имеет несколько хороших ответов: http://stackoverflow.com/questions/30074/monitoring-files-how-to-know-when-a-file-is-complete – mfdoran