Я пытаюсь использовать FileSystemWatcher - и мне повезло.
Цель состоит в том, чтобы переместить созданный файл из отслеживаемой папки в новую папку.
Но ... ударил 2 загвоздки. Во-первых, если я переместил 3 файла в папку одновременно (выберите 3 файла, ctrl + x, а затем ctrl + c в мою папку монитора), монитор запускается только для первого файла. Остальные 2 не обрабатываются.
FileSystemWatcher fsw = new FileSystemWatcher(FolderToMonitor);
fsw.Created += new FileSystemEventHandler(fsw_Created);
bool monitor = true;
while (monitor)
{
fsw.WaitForChanged(WatcherChangeTypes.All, 2000);
if (Console.KeyAvailable)
{
monitor = false;
}
}
Show("User has quit the process...", ConsoleColor.Yellow);
Console.ReadKey();
Есть ли способ заставить его увидеть все 3?
Во-вторых, если я перемещаю файл в папку монитора с другого диска, копирование файла в папку занимает несколько секунд. Тем не менее, монитор срабатывает, как только файл начинает копироваться в ..., поэтому он доступен только для чтения и не готов к перемещению.
Можно ли подождать, пока файл завершит копирование в папку монитора, прежде чем я обработаю его?