2

我使用 VC++ writefile 函数更新硬盘根目录,长文件名、文件大小、文件日期等信息。但是,我注意到窗口资源管理器在重新启动(例如刷新或重新打开另一个窗口资源管理器)之前不知道这一点。我曾尝试调用 SHChangeNotify 和 SendMessageTimeout 但失败了。我的下一步是尝试假装移除和插入外部磁盘。请帮忙。谢谢

4

2 回答 2

3

不要尝试在挂载时直接修改文件系统(如果资源管理器可以看到它,则它已挂载)。操作系统将维护文件系统的各种缓存表示,并且在操作系统背后对其进行修改将导致缓存表示与实际 FS 之间的不一致,从而可能破坏文件系统和所述 FS 中的任何数据。

查看这个 serverfault 问题,了解有关如何执行卸载的一些提示。

于 2011-12-16T04:19:53.347 回答
-1

尝试关闭硬盘写入缓存,希望操作系统不会在 RAM 中缓存任何文件系统数据。这会影响 IO 性能,但可能对您的实验有所帮助。

于 2011-12-16T06:41:33.793 回答