【发布时间】:2012-02-29 05:22:45
【问题描述】:
我有一个用于复制文件的文件夹。我想在将文件复制到目录后立即观看并处理文件。我可以检测文件何时在目录中,无论是通过轮询(我当前的实现)还是在使用我在网上找到的几个示例中的 Windows API 进行的一些测试中。
问题是我检测到文件何时首次创建并且仍在复制中。这使我需要访问文件的程序通过错误(因为文件尚未完成)。我怎样才能检测到复制开始的时间而不是复制结束的时间?我在 Windows 上使用 C++,所以答案可能取决于平台,但如果可能的话,我希望它与平台无关。
【问题讨论】:
-
几分钟前我发现了这个问题:stackoverflow.com/questions/559659/… 这与我的问题非常相似,但“批准”的解决方案远非优雅和实用。
-
如果您的代码将在管理上下文中运行,即作为系统服务,您可以使用更改日志。见msdn.microsoft.com/en-us/library/windows/desktop/…
-
考虑到使用
fread()/fwrite()进行天真的复制等事情的可能性,我认为没有通用的解决方案。不太健壮,但也许通过跟踪文件的打开句柄?
标签: c++ windows visual-c++ directory