Desktop.ini& amp;自定义文件夹图标即时提神

时间:2013-06-05 17:08:06

标签: c++ windows winapi directory

我的任务是创建一个记账程序,跟踪一些关于何时读取文件和文件夹的统计信息。与Google Drive和TortoiseSVN类似,文件夹和文件图标应反映某些更改。例如,具有未在某台计算机上查看过的文件的USB具有“x”,而查看的文件则为“o”。

我可以使用this Windows API跟踪文件使用情况,desktop.ini文件[12可以更改图标(以及其他一些不错的选项), 34]。

在手动搞乱desktop.ini文件时,我已成功更改了图标,描述和其他有趣的东西。问题是,在Windows再次分析desktop.ini文件之前,新更改不会更新。这往往在几秒到几分钟之间不一致地发生。 F5刷新不会强制重新分析,但如果发生了重新分析,则会更新图像。

如何强制Windows在C ++程序中手动和(更重要的)重新分析desktop.ini文件?

是否有可以立即更改文件夹图标的替代C ++ Windows API?

2 个答案:

答案 0 :(得分:2)

如果您编辑desktop.ini,它将不会自动刷新资源管理器。使用SHGetSetFolderCustomSettings写信给它:

SHFOLDERCUSTOMSETTINGS fcs = {0};
fcs.dwSize = sizeof(SHFOLDERCUSTOMSETTINGS);
fcs.dwMask = FCSM_ICONFILE;
fcs.pszIconFile = iconPath;
fcs.cchIconFile = 0;
fcs.iIconIndex = iconIndex;
SHGetSetFolderCustomSettings(&fcs, folderPath, FCS_FORCEWRITE);

答案 1 :(得分:0)

如果您希望使用不同的文件夹图标来区别地指示不同的状态(类似于SVN),则需要图标叠加。更改文件夹图标不是合适的解决方案。文件夹图标的更改将立即反映出来 如果您需要更多详细信息,请告知我们。