动作强制刷新文件夹图标缓存的方法展示

经验创意 · 81 次浏览
白云朔 创建于 2024-11-25 18:54

研究了一下大佬是如何实现强制刷新文件夹图标缓存,

常规方法:

  1. 重启explorer.exe进程(文件资源管理器):
    该方法会造成部分程序和进程中断,影响范围过大。

  2. 更改“日期与设置”(ms-settings:dateandtime)中更改系统时间:
    还是一样的问题,会造成部分程序和进程出现错误(比如搜狗输入法),影响范围过大。

  3. 进入文件夹的属性窗口,在“自定义”选项卡中点击确定(无需更改设置,直接点击确定即可):
    影响范围小,但是太麻烦,唤醒文件夹的属性窗口只能通过模拟键盘操作或PowerShell(并且该方法还会导致PowerShell占用文件夹)
    Start-Process powershell -ArgumentList "-NoExit", "-Command", "(New-Object -ComObject Shell.Application).Namespace('要打开属性窗口的路径').Self.InvokeVerb('Properties')"

直到看到了的大佬的这个方法,才算是找到了完美解决方法

核心代码(VBS):

set shell = CreateObject("Shell.Application")
set folder = shell.NameSpace("文件夹路径")
folder.MoveHere "desktop.ini文件路径", 4+16+1024

核心就是通过VBS脚本移动desktop.ini文件,将外部desktop.ini移入,或内部desktop.ini移出再移入,然后执行一次普通的刷新(F5),就能看到文件夹的图标成功被刷新。
大佬这个动作中采用的方法是在外部(系统Temp文件夹)创建desktop.ini文件,再移入的方法,刷新文件夹图标。个人使用的话,确保目标文件夹或目标文件夹的父级文件夹的desktop.ini有移入操作就行了。个人这边建议移入父级文件夹的desktop.ini,因为这可以实现批量更新文件夹图标时,只通过该VBS代码执行一次命令,即可刷新父级文件夹中的所有文件夹。


onlyclxy 2024-11-25 19:04 :

感谢,不过我要改些什么吗?  

白云朔 回复 onlyclxy 2024-11-25 19:09 :

不用,感谢大佬发布的动作。我这边也在开发一个批量更换文件夹图标、显示名、标记、备注的动作,目前正在把标记设置功能增加上去。
比较好奇您是从哪找到这个方法的?以及对于文件夹的标记参数的参数名是从哪查到的,可能话我这边还想给文件夹增加更多desktop.ini属性设置,微软官方给的desktop.ini功能文档实在是太简陋了,定义文件夹图标的参数在Windows10中都是不生效的

onlyclxy 回复 白云朔 2024-11-25 19:41 :

这个vbs方法是群里的 冰雷木子 提供的. 当时正好讨论这个 他有些不会弄. 别的条目是我找的一些资料. 不过根据之前的资料来看. 就这俩好实现. 其他的比如图标那个, 就实现的有问题.   我后来已经转Directory Opus了

白云朔 回复 onlyclxy 2024-11-25 19:44 :

图标那个是编码问题,这边了测试一下,以gb2312或UTF32编码保存都是正常的,可能desktop.ini默认以系统编码进行解码运行

onlyclxy 回复 白云朔 2024-11-25 20:18 :

哦哦 那你真厉害

回复内容
暂无回复
回复主贴