我想让某些文件夹显示我自己制作的图片,而不必使用属性并指定文件*.ico
。有没有办法使用*.jpg
或*.png
或*.gif
或类似的东西来代替?或者一个程序/脚本可以让我更轻松地告诉该文件夹使用我拥有的图像。
我不想手动转换它们,因为那太麻烦了。我打算经常这样做,作为浏览文件夹结构时的一种识别方式。不,搜索不是替代解决方案......
答案1
据我所知,对于 Windows 上的图标,必须使用.ico
文件。虽然在 Win9x 时代,人们可以通过使用重命名的 来避免这种情况.bmp
,但它们在精美的 Aero 图标旁边看起来很糟糕——尤其是因为典型的 ICO 包含几种带有透明层的图像尺寸。
您可以使用图像魔术师将 PNG 图像转换为 ICO 文件:
convert foo.png foo.ico
或者如果你有多种尺寸的 PNG,
convert foo-*.png foo.ico
另一部分,制作 Windows使用你的图标,更容易:
创建一个
desktop.ini
目录中的文件,内容如下:[.ShellClassInfo] IconFile=folder.ico IconIndex=0
相对路径
IconFile
应该得到支持;它们也将通过网络工作。看这篇 MSDN 文章有关以编程方式设置文件夹图标的详细说明。
将目录标记为“只读”(首选)或“系统”:
attrib +r Music
如果没有这个,出于性能原因,Explorer 甚至不会查找
desktop.ini
自定义项(如旧事物新)。可选择标记
desktop.ini
为隐藏,这样它就不会使文件列表混乱:attrib +h +s desktop.ini
答案2
不,.ICO 文件(专门)用于文件夹的图标(因为,嗯,它们是图标;))。
最好的/唯一的办法是将图像文件转换为 .ICO 格式。
也许可以查看这些想法/实用程序,以使转换更容易:
- 如何将 .PNG 转换为 .ICO?
- https://superuser.com/questions/147056/what-tool-can-i-use-to-convert-various-formats-into-icon-files
- 将 SVG 图像批量转换为所需大小的 PNG 或 ICO
我个人喜欢Axialis 的 IconWorkshop满足我所有的 .ICO 需求。:)
至于不使用属性来注入/分配它们,那是另一回事,而且实际上非常简单。
desktop.ini
您可以通过在要应用图标的文件夹中 创建/修改(文本)文件来指定它。笔记:此文件是‘隐藏’和‘系统’文件。
示例desktop.ini:
[.ShellClassInfo]
IconResource=C:\Users\techie007\Documents\myNukeBall.ico,0
答案3
公共子更改文件夹图标()
Dim FSO As Object
Dim folderPath As String, DesktopIni As String
folderPath = "C:\Users\user_name\Desktop\my_folder"
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
DesktopIni = folderPath & "Desktop.ini"
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO
.GetFolder(folderPath).Attributes = System
If .FileExists(DesktopIni) Then .DeleteFile DesktopIni
With .CreateTextFile(DesktopIni, True)
.WriteLine "[.ShellClassInfo]"
' Windows 10 Icons
'.WriteLine "IconFile=%SystemRoot%\system32\SHELL32.dll"
'.WriteLine "IconIndex=12"
' Custom icon
.WriteLine "IconFile=C:\Users\user_name\Desktop\my_folder\Icon.ico"
.WriteLine "IconIndex=0"
.Close
End With
.GetFile(DesktopIni).Attributes = Hidden
End With
子目录结束