我正在使用FileSystemWatcher
來觀察新文件的文件夾。當一個新文件被複制進去時,它對我來說很好。然而,如果我複製5個文件(這將是我一次做的最大值),它會激發,但FileSystemEventArgs
只有一個文件。C#和SystemFileWatcher-多個文件
我需要它通過所有的新文件。
有沒有辦法讓它處理所有的文件,然後我通過它們循環?
這裏是我的代碼:
static void Main(string[] args)
{
FileSystemWatcher fsw = new FileSystemWatcher(FolderToMonitor)
{
InternalBufferSize = 10000
};
fsw.Created += new FileSystemEventHandler(fsw_Created);
bool monitor = true;
Show("Waiting...", ConsoleColor.Green);
while (monitor)
{
fsw.WaitForChanged(WatcherChangeTypes.All, 2000); // Abort after 2 seconds to see if there has been a user keypress.
if (Console.KeyAvailable)
{
monitor = false;
}
}
Show("User has quit the process...", ConsoleColor.Yellow);
Console.ReadKey();
}`
static void fsw_Created(object sender, FileSystemEventArgs args)
{
Show("New File Detected!", ConsoleColor.Green);
Show("New file name: " + args.Name, ConsoleColor.Green);
bool fileIsReadOnly = true;
while (fileIsReadOnly)
{
Thread.Sleep(5000);
fileIsReadOnly = IsFileReadonly(args.FullPath);
if (fileIsReadOnly)
Show("File is readonly... waiting for it to free up...", ConsoleColor.Yellow);
}
Show("File is not readonly... Continuing..", ConsoleColor.Yellow);
HandleFile(args);
}
如何複製文件?也許它會以某種方式影響觀察者。 – 2011-05-15 08:46:13