我在Windows 8上,並且擁有更改文件夾圖標的C#代碼。更改文件夾圖標需要更長的時間才能顯示更新的圖標
這工作得很好,但需要很長時間才能刷新。我一直在嘗試如下方法:
IntPtr path = Marshal.StringToHGlobalAuto(@"[FolderPath]");
SHChangeNotify(HChangeNotifyEventID.SHCNE_ATTRIBUTES,
HChangeNotifyFlags.SHCNF_PATHA, path, IntPtr.Zero);
SHChangeNotify(HChangeNotifyEventID.SHCNE_UPDATEIMAGE,
HChangeNotifyFlags.SHCNF_DWORD, IntPtr.Zero, IntPtr.Zero);
SHChangeNotify(HChangeNotifyEventID.SHCNE_ASSOCCHANGED,
HChangeNotifyFlags.SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
這似乎對文件夾圖標沒有任何影響。它會刷新我的屏幕,但圖標仍然是相同的圖標。幾分鐘後,我可以按F5鍵,它將變爲我指定的文件夾圖標。
我見過一些非常醜陋的方法來解決這個問題,但我真的想知道什麼會告訴Windows以編程方式'刷新'文件夾圖標。我已經看到Dropbox似乎是即時的,我正在考慮有一個解決方案。
你有沒有找到一個解決辦法?我有和java一樣的問題。任何輸入都會有幫助! – insanity 2014-09-22 05:48:46