强制windows在编辑FAT32根目录信息后重新加载
force windows to reload FAT32 root directory information after edit
我使用vc++的writefile函数更新硬盘根目录,如长文件名、文件大小、文件大小等信息。然而,我注意到窗口资源管理器不知道这一点,直到它被重新启动,如刷新或重新打开另一个窗口资源管理器。我试过调用SHChangeNotify和SendMessageTimeout,但失败了。我的下一步将是尝试一个假的删除和插入一个外部磁盘。请帮助。由于
不要试图在文件系统挂载时直接修改它(如果资源管理器可以看到它,那么它就已经挂载了)。操作系统将维护文件系统的各种缓存表示,并且在操作系统背后修改它将导致缓存表示与实际FS之间的不一致,可能会损坏文件系统和所述FS中的任何数据。
看一下这个serverfault问题,获得一些关于如何执行卸载的提示。
尝试关闭硬盘写缓存,希望操作系统不会在RAM中缓存任何文件系统数据。这将影响IO性能,但可能有助于您的实验。
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- 强制资源管理器重新加载注册表值
- cvLoadImage 不显示新图像并加载以前的图像
- 使用新运算符而不是加载的新操作员的弦乐深部副本
- C Excel加载加载错误:XLL文件由Excel加载为文本文件
- 使用延迟加载加载正确的库 - 返回值类型错误
- 如果新内容过载但未加载相应的删除,会发生什么情况
- 在模块加载/卸载时构造/破坏外部c++模块中的对象
- 加载/卸载时由共享库执行的代码
- 当其他函数更新到库中时,不会加载加载库
- 一个C++客户端无法使用我们新的 COM 注册的 .NET .dll加载,另一个客户端可以正常工作
- 如何访问加载的映像的各个 R/G/B 组件(较新的 C++ API)
- 将序列化保存到多种存档类型,并防止在使用指针加载时构造新对象
- Qt c++如何在加载新的HTML页面后释放内存
- 如何加载加载win32 dll和执行简单的winapi与firebreath
- 在DLL中使用新的Vista线程池API也可以在XP中加载(在XP中不使用线程池代码)
- 在c++中使用动态加载重新加载一个库