我現在正在編程一個小工具,需要立即刷新文件夾圖標。
我們知道,在Windows中,我們可以通過下面的步驟手動修改文件夾圖標:
如何在Windows中立即刷新文件夾圖標
- 右鍵單擊該文件夾
- 選擇「自定義」標籤
- 點擊「更改圖標」
我也知道如何設置desktop.ini文件來修改它的圖標。但需要很長時間才能刷新(大約30秒)。
我想知道是否有一種常見的方式來立即解決它,無論使用C/C++或腳本。或者Windows從不提供一種方式?
如果可能,歡迎任何代碼。
我現在正在編程一個小工具,需要立即刷新文件夾圖標。
我們知道,在Windows中,我們可以通過下面的步驟手動修改文件夾圖標:
如何在Windows中立即刷新文件夾圖標
我也知道如何設置desktop.ini文件來修改它的圖標。但需要很長時間才能刷新(大約30秒)。
我想知道是否有一種常見的方式來立即解決它,無論使用C/C++或腳本。或者Windows從不提供一種方式?
如果可能,歡迎任何代碼。
這個小C程序將做的工作:
#include <windows.h>
#include <ShlObj.h>
const char folderpath[] = "C:\\Your-Folder";
int main() {
SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH, folderPath, NULL);
}
folderpath
是其圖標將被更新 以下操作順序在這裏工作得很好的文件夾的完整路徑(視窗10 64位):
Desktop.ini文件
[.ShellClassInfo]
IconResource=C:\Windows\System32\SHELL32.dll,12
檢查SHChangeNotify
功能的更多細節。
感謝您提供詳細的解決方案!我會試一試。再次感謝。 –
@NekoGong如果有效,請不要忘記[接受](https://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow)答案,所以其他讀者知道這是解決您的問題的正確方案。 –
如果'SHChangeNotify(SHCNE_UPDATEITEM,SHCNF_PATH,folderPath,NULL);'就足夠了。當只有一個圖標發生變化時,應該比使整個圖標緩存無效更有效。在[OldNewThing](https://blogs.msdn.microsoft。COM/oldnewthing/20150903-00/P = 91671)。 – zett42
請詳細說明。不確定你的意思是哪個「文件夾圖標」。 –
右鍵單擊Windows中的任何文件夾時,可以通過選擇「自定義」標籤,「更改圖標」來設置其圖標。我只想要一種常用的方法來自動實現它。 –
請[編輯]你的問題,並把澄清__在這裏。 –