我需要编写一些代码,以便在文件更改时从目录复制文件。

我知道C / C ++(有点:),但我从未使用过.net。我认为很好吗?
首先,我使用FSW创建新线程,然后在发生更改时创建下一个将复制文件的线程?

最佳答案

如果您熟悉C / C ++,则应使用ReadDirectoryChangesW()。 FileSystemWatcher是此API函数的精简包装。但无可否认,它更容易上手。 SDK示例代码可用here.

FSW / RDC的常见问题是,收到通知时您无法访问该文件,因为正在编写文件的应用程序已对其进行锁定。您需要一个线程安全的队列来存储通知,并由另一个定期尝试执行所需操作的线程清空。这也是处理通知时的一种健康方法,您将希望花费尽可能少的时间来避免创建大型通知缓冲区。它们是昂贵的系统资源。

09-04 10:21