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