在 Windows 下,我们可以为每一个文件夹设置图标。可惜图标一多,一个一个地设置起来就显得很麻烦。而且每当更换设备,文件夹的图标也很容易因为种种原因遗失。
这个问题也让很多希望美化自己电脑的朋友感到头疼,而在网上却少有这方面的资料,最后只好放弃文件夹美化。这就来介绍一些 Windows 下图标美化方面的技巧,看看如何才能让图标牢牢地粘在文件夹上。
Windows 的文件夹图标工作原理
想要弄明白为什么图标会消失,就要先讲讲 Windows 下文件夹图标的工作原理。如果你不想知道这些细节,可以直接跳过这段,看看下面的如何修改文件夹图标部分。
众所周知,Windows 下的文件夹属性是通过文件夹根目录下的 desktop.ini 文件控制的。
如果要让这个文件夹显示图标,在 desktop.ini 文件中需要写入这样的两行代码——
[.ShellClassInfo]
IconResource=D:\Program Files\Foldericon.ico,0
其中使用的 .ico 图标文件可以放在电脑的任意位置。
还有一个隐藏条件,只有当文件夹本身具有「只读」属性时,desktop.ini 文件才会生效。
这一点与网上找到的资料不同,在我找到的大部分资料中都写道「文件夹需要设为系统属性才能生效」,使用的命令也是attrib +s—— 正确的做法是attrib +r /d。
但是经过我自己测试,在 Windows 10 下,文件夹实际需要的权限为「只读」。原因如下:
修改文件夹属性为「系统」后,ini 配置文件没有产生任何作用。
通过系统自带的修改图标方式设置后,文件夹被设置为「只读」而非「系统」。
设为「系统」属性后会提升文件夹的操作权限,这不是安全的操作。
所以目前网上说的需要「系统」属性显然是错误的说法。原因可能是在 XP 中,文件夹会被设定为「系统」属性,在之后的 Win 7、Win 10 中改为了「只读」,再加上这个问题似乎一直都没有人仔细研究过,导致之后的大量转载都出现了错误,特此纠正。
基础篇:如何简单的修改文件夹图标
找到一套高质量的图标
在网上可以找到很多文件夹图标,挑选一些你喜欢的图标就可以了。这里推荐一些图标搜索引擎,可以选择下载自己喜欢的图标。
Flaticon:这里的图标质量非常高,而且都是扁平风格,搜索 folder 就可以找到大量的文件夹图标。使用时风格也很容易统一。
Easyicon:图标数量很多,不过画风、质量参差不齐。需要自行筛选。
千图网图标宝:这是一个国内的搜索引擎,图标质量也都不错。
除了常规的图标搜索引擎,解包 Android 的图标包也是一个不错的选择。我电脑中的工具库图标就采用了Android Sorcery 图标包中的很多图标,整体看上去很清新,风格也很统一,在这里感谢作者。
不过注意,解包 Android 图标包后获得的图标仅限于个人使用,不要随意传播、分享、用于商业用途。
此外,如果你喜欢 macOS 风格的图标,也可以自行搜索 macOS 图标包,很容易就能找到打包下载链接。
用系统默认方式修改图标
最初我采用的方式是手动修改图标。
我将所有需要的图标放在E:\图标库中,然后依次「右键文件夹 → 属性 → 替换图标 → 选择图标 → 确定」,就可以完成图标的修改了。这是系统提供的更改图标方式。
它实际做的操作是在文件夹中创建一个隐藏的 desktop.ini 文件,将图标设为E:\图标库\Pages.ico,再把文件夹属性设置为「只读」,最后刷新了一下对应的图标缓存。
这是一个简单易懂的操作,大部分人都是用这种方式手动修改的。
但是在后续的使用中就会发现,通过这种方式为文件夹设置了一个图标后,再将这个文件夹放进 U 盘并在其他电脑中查看时,图标往往会失效。这是由于 desktop.ini 文件中默认采用的是绝对路径,一旦文件夹放进 U 盘、移动到其他电脑,盘符、路径出现变化,无法找到这个图标,文件夹图标自然就无法显示了。
而且这个按钮藏得很深,步骤繁琐,效率低下,又很难对大量文件夹进行批量操作。不久后我就放弃了这种费时费力的方法。
进阶篇:如何批量让文件夹获得稳定的图标
用上面的方法为文件夹设置图标很简单,但设置过程中的种种问题也导致 Windows 中的文件夹图标很不稳定,图标容易失效。那就来看看,如何才能又快又好的完成这项工作。
修改为相对路径,保证图标显示
我们需要先把图标文件分别放进文件夹中,这样才能使用相对路径。
再用上面提到的系统默认的图标修改方式修改文件夹图标(这里要操作好几步)。
此时打开自动生成的 desktop.ini 文件,去掉E:\文档库\,路径就变成了相对路径:IconResource=Pages.ico,0。
手动建立 ini 文件,提高替换效率
结合图标的工作原理我们得知,想要让一个文件夹获得稳定不变的图标,就需要满足三个条件。
一个稳定的图标位置,比如将图标放在文件夹的根目录下。
一个稳定的 desktop.ini 文件,在 desktop.ini 文件中使用相对路径。
将文件夹属性为「只读」。
前两个问题很容易解决,第三个稍稍复杂一些。
第一步:利用 Everything 对图标进行批量操作
首先将看中的图标复制一份到需要图标的文件夹中,再命名为统一的名字,比如foldericon.ico。
如果想要批量修改文件夹图标,在 Everything 中搜索”D:\工具库\” .ico找到当前目录下的所有图标文件,全选后重命名即可。
然后新建一个文本文件,命名为 desktop.ini,再把这段代码复制进去。
[.ShellClassInfo]
IconResource=foldericon.ico,0
记得要把 foldericon 替换成重命名后的图标名,保存。然后把这个 desktop.ini 依次拖进每一个文件夹中。
再利用 Everything 搜索所有的 foldericon.ico 和 desktop.ini,把它们的文件属性设置为「隐藏」。
第二步:修改文件夹属性
方法一:利用 Total Commander 修改文件夹属性
最后只需解决文件夹的属性问题就好了。可惜微软提供的图形化界面中没有提供「将文件夹设为只读」的选项(只能将文件夹中的文件设为只读)。
所以需要用到其他的一些工具,帮我们快速修改文件夹属性,比如 Total Commander。
在 Total Commander 中选中对应的文件夹,依次点击「文件 → 更改属性 → 只读 → 确定」,就可以轻松地把文件夹属性设为只读了。
方法二:利用命令行手动修改文件夹属性
如果你不愿意因为这点小事安装一个软件,也讲一下利用命令行修改文件夹属性的方法。
直接点击文件夹中的地址栏,输入cmd并回车,在当前目录打开命令行。输入attrib +r /d,就可以将该目录下所有的文件、文件夹都设为只读(如果该目录下还有文件,可以右键这些文件 → 属性 → 取消只读属性)。
如果看文字有点复杂,按照这个动图做就好了。
到这里,desktop.ini 文件就起作用了,图标也会被完美替换。经过这番操作的文件夹,无论被移动到哪里,它们都能显示正确的图标了。
补充篇:重建图标缓存
其实到这里文章已经结束了。然而在我实践过程中,又出现了另一个坑。
当我想要换掉一个文件夹图标时,手动建立的 desktop.ini 不会刷新 Windows 中的图标缓存。这就导致「即使删掉了图标文件,重新建立的同名图标依然不会出现」。
所以,要么通过系统自带的方法重新设置图标,要么手动重建图标缓存。
在开始菜单的 Windows 管理工具中找到系统自带的「磁盘清理」工具。
磁盘清理工具
选择 C 盘,勾选「缩略图」后进行清理,然后重启电脑,图标就会被刷新。
清理缩略图刷新图标缓存
Windows 图标缓存文件的位置在%USERPROFILE%\AppData\Local\Microsoft\Windows\Explorer,但是手动删除不太容易,需要用一长段代码解除占用,在这里就不展开讲了,感兴趣的可以自己研究。
批量修改图标的快捷小工具
由于在网上找不到这方面的小工具,我就自己写了一个批量替换文件夹图标的软件 FolderIconTool 。它可以自动将每个文件夹中的.ico图标文件设置为文件夹的图标。
它执行的具体操作与上文是一致的。
这里是GitHub 链接,可以在这里看到具体的说明。
如果你看完全文觉得太麻烦了,不妨下载 FolderIconTool试一试。
总结
不得不承认,这是一件费力不讨好的事情。为了美化 Windows 的文件夹图标这件小事而大动干戈,在很多人看来似乎有点不值。
从我发现这个问题,到最终解决,再到写下这篇文章,期间经历了很长一段时间。还被网上的许多文章误导(文件夹属性)。但这让我觉得,即使应用面不广,也应该写一份经验分享给大家,以免被错误的信息误导。
总结一下全文,就是四个步骤「找图标、放图标、改相对路径、改文件夹属性」。这几个简单的步骤,再结合上面的一些批量修改小技巧,应该能大大提高更换图标的效率。如果你也曾因为 Windows 的图标问题伤过脑筋,希望这篇文章能够帮到你。
作者:沨沄极客