如何像SVN一样修改目录下文件和文件夹的图标

时间:2022-06-15 12:21:30
最近做一个文件自动上传程序,最后的效果想像SVN一样,将已上传和未上传的文件图标修改为不同的样式来进行区分,请教各位高手该如何进行实现,或者有什么思路,多谢了。

13 个解决方案

#1


文件夹改变图标,好像是会生成一个配置文件,隐藏的,你右键文件夹属性,就可以更改,改完了看看那个配置文件

#2


现在是想像SVN的效果差不多,里面的话是没有这种desktop.ini文件的,而且修改文件的图标的话也不能使用配置文件来进行。

#3


应该是hook到explorer中来做的。
判断当前位置有.svn文件夹是,做一定的判断后显示合适的图标。


#4


可以参考微软的"创建图标叠加处理程序(Creating Icon Overlay Handlers)":
http://msdn.microsoft.com/en-us/library/cc144123(v=vs.85).aspx

#5


恩,好的,我先看看效果

#6


该回复于2011-04-11 08:37:34被版主删除

#7


看了下,上面也没有介绍如何改变指定目录下文件的图标,当该文件拷贝或者剪切到别的目录的时候会恢复到原始的图标。

#8


我在网上找了下,有个差不多的问题,http://us.generation-nt.com/answer/ishelliconoverlayidentifier-c-help-54925982.html#r,但是我按照上面的编译了下好像没有效果,下面作者回复没有效果是因为regasm注册出线问题,但是我看了下注册表,确实是注册了,接口里面的3个方法好像根本没有调用。

#9


可能需要重启explorer进程

#10


这是一个windows shell 扩展;用ATL 实现自己定义的一个com组建 其中要实现IShellIconOverlayIdentifier接口
你知道如何区分上传得文件,和没上船的文件么?
如果知道的话应该很好实现

#11


引用 10 楼  的回复:
这是一个windows shell 扩展;用ATL 实现自己定义的一个com组建 其中要实现IShellIconOverlayIdentifier接口
你知道如何区分上传得文件,和没上船的文件么?
如果知道的话应该很好实现


赞成!

#12


该回复于2012-11-20 13:00:30被管理员删除

#13


4楼正解,但是我虽然知道怎么去实现功能,但是具体怎么做迷茫中,对于COM这玩意儿既爱又恨

#1


文件夹改变图标,好像是会生成一个配置文件,隐藏的,你右键文件夹属性,就可以更改,改完了看看那个配置文件

#2


现在是想像SVN的效果差不多,里面的话是没有这种desktop.ini文件的,而且修改文件的图标的话也不能使用配置文件来进行。

#3


应该是hook到explorer中来做的。
判断当前位置有.svn文件夹是,做一定的判断后显示合适的图标。


#4


可以参考微软的"创建图标叠加处理程序(Creating Icon Overlay Handlers)":
http://msdn.microsoft.com/en-us/library/cc144123(v=vs.85).aspx

#5


恩,好的,我先看看效果

#6


该回复于2011-04-11 08:37:34被版主删除

#7


看了下,上面也没有介绍如何改变指定目录下文件的图标,当该文件拷贝或者剪切到别的目录的时候会恢复到原始的图标。

#8


我在网上找了下,有个差不多的问题,http://us.generation-nt.com/answer/ishelliconoverlayidentifier-c-help-54925982.html#r,但是我按照上面的编译了下好像没有效果,下面作者回复没有效果是因为regasm注册出线问题,但是我看了下注册表,确实是注册了,接口里面的3个方法好像根本没有调用。

#9


可能需要重启explorer进程

#10


这是一个windows shell 扩展;用ATL 实现自己定义的一个com组建 其中要实现IShellIconOverlayIdentifier接口
你知道如何区分上传得文件,和没上船的文件么?
如果知道的话应该很好实现

#11


引用 10 楼  的回复:
这是一个windows shell 扩展;用ATL 实现自己定义的一个com组建 其中要实现IShellIconOverlayIdentifier接口
你知道如何区分上传得文件,和没上船的文件么?
如果知道的话应该很好实现


赞成!

#12


该回复于2012-11-20 13:00:30被管理员删除

#13


4楼正解,但是我虽然知道怎么去实现功能,但是具体怎么做迷茫中,对于COM这玩意儿既爱又恨