【发布时间】:2010-10-20 20:07:09
【问题描述】:
问题是:我使用 Win32 API ReadDirectoryChangesW 函数监视一个目录。而且我需要区分新创建的文件和修改过的文件。但是有问题......一如既往:(
案例:
- 我监视新/修改目录 (
FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_SIZE)。 问题: 创建文件后,触发新建文件事件+修改文件事件。但我只需要一个。我怎样才能避免这种情况?当文件被修改时,我得到了我想要的:)。 - 我只监视新文件的目录 (
FILE_NOTIFY_CHANGE_FILE_NAME) - 没问题。 - 我只监视目录以修改文件 (
FILE_NOTIFY_CHANGE_SIZE)。 问题: 当有新文件时,修改操作会与文件创建事件一起触发。我怎样才能避免这种情况?
当然,我实施了一些解决方法。但是,我想知道是否有任何优雅的方式来处理我描述的问题。
【问题讨论】:
-
当尺寸从 0 变为非零时忽略尺寸修改会有所帮助吗?
-
在事件发生时我不知道文件大小,我只知道文件被改变了。
-
目前唯一有帮助的是跳过下一个事件,方法是放置一个 1 秒的计时器并跳过它。但这是一种解决方法,而不是解决方案:)
标签: c++ winapi readdirectorychangesw