заставить Windows перезагрузить информацию корневого каталога FAT32 после редактирования - PullRequest
2 голосов
/ 12 декабря 2011

Я обновляю корневой каталог жесткого диска, такую ​​информацию, как длинное имя файла, размер файла, дата файла и т. Д., Используя функцию записи файла VC ++.Тем не менее, я отмечаю, что оконный обозреватель не знает об этом, пока он не будет перезагружен, например, обновить или открыть другой оконный обозреватель.Я пытался позвонить в SHChangeNotify и SendMessageTimeout, но не удалось.Следующим моим шагом было бы попробовать подделку удаления и вставки внешнего диска.Пожалуйста помоги.спасибо

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

Не пытайтесь изменить файловую систему напрямую, пока она смонтирована (и, если проводник может ее увидеть, она смонтирована).ОС будет поддерживать различные кэшированные представления файловой системы, и изменение ее за спиной ОС приведет к несоответствиям между кэшированным представлением и фактической FS, потенциально повреждая файловую систему и любые данные в упомянутой FS.

Взятьпосмотрите на этот вопрос о сбое сервера , чтобы узнать, как выполнить размонтирование.

0 голосов
/ 16 декабря 2011

Попробуйте , отключив кэш записи жесткого диска , надеюсь, ОС не кэширует данные файловой системы в ОЗУ.Это повлияет на производительность ввода-вывода, но может помочь вашему эксперименту.

...