【发布时间】:2020-03-17 00:36:44
【问题描述】:
我正在创建一个用于更改文件元数据的应用程序。我希望元数据编辑不会影响文件的修改日期,所以我想通过这样做来抑制修改日期更改:
FILETIME ft = { 0xFFFFFFFF, 0xFFFFFFFF };
SetFileTime(hFile, NULL, NULL, &ft);
唯一的缺点是这显然会导致ReadDirectoryChangesW 没有被触发,因此更改不会在 Dropbox 之类的东西上同步。我想知道是否有办法抑制修改日期更改,但也可以人为触发 ReadDirectoryChangesW 以便修改注册。换句话说,两全其美。那可能吗?非常感谢您提供任何信息。
【问题讨论】:
-
您正在修改文件。为什么不希望修改更新文件的最后修改时间戳?对我来说,这听起来像是 XY problem。
-
是的,我想你是对的。
-
我不确定您所说的文件元数据是什么意思,但如果您正在写入 ADS,我非常怀疑 Dropbox 是否会同步这些数据。
-
@rem:您真的希望您的最后一次修改时间戳在您的反恶意软件解决方案完成扫描文件时更新吗?
-
@IInspectable 扫描文件不会修改文件,除非感染被删除。 OP明确表示正在修改目标文件。
标签: c++ windows shell winapi metadata