研究了一下大佬是如何实现强制刷新文件夹图标缓存,
常规方法:
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代码执行一次命令,即可刷新父级文件夹中的所有文件夹。
感谢,不过我要改些什么吗?
不用,感谢大佬发布的动作。我这边也在开发一个批量更换文件夹图标、显示名、标记、备注的动作,目前正在把标记设置功能增加上去。
比较好奇您是从哪找到这个方法的?以及对于文件夹的标记参数的参数名是从哪查到的,可能话我这边还想给文件夹增加更多desktop.ini属性设置,微软官方给的desktop.ini功能文档实在是太简陋了,定义文件夹图标的参数在Windows10中都是不生效的
这个vbs方法是群里的 冰雷木子 提供的. 当时正好讨论这个 他有些不会弄. 别的条目是我找的一些资料. 不过根据之前的资料来看. 就这俩好实现. 其他的比如图标那个, 就实现的有问题. 我后来已经转Directory Opus了
图标那个是编码问题,这边了测试一下,以gb2312或UTF32编码保存都是正常的,可能desktop.ini默认以系统编码进行解码运行
哦哦 那你真厉害