我正在使用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