如何通过Python自定义文件夹的图标?

正如SU答复指出,为了更改文件夹的图标,必须将文件夹的属性更改为只读或系统,并使其desktop.ini包含类似

 [.ShellClassInfo] IconResource=somePath.dll,0 

虽然使用win32api.SetFileAttributes(dirpath, win32con.FILE_ATTRIBUTE_READONLY)并从头开始创builddesktop.ini会很简单,但我想保留其他可能存在于desktop.ini自定义。 但是,我应该使用ConfigParser ,或者例如win32api (或者ctypes.win32 )提供本地方法来做到这一点?

好吧,所以从这个线程 ,我设法得到一些工作。 我希望这会帮助你。

这是我的基地desktop.ini文件:

 [.ShellClassInfo] IconResource=somePath.dll,0 [Fruits] Apple = Blue Strawberry = Pink [Vegies] Potatoe = Green Carrot = Orange [RandomClassInfo] foo = somePath.ddsll,0 

这是我使用的脚本:

 from ConfigParser import RawConfigParser dict = {"Fruits":{"Apple":"Green", "Strawberry":"Red"},"Vegies":{"Carrot":"Orange"} } # Get a config object config = RawConfigParser() # Read the file 'desktop.ini' config.read(r'C:\Path\To\desktop.ini') for section in dict.keys(): for option in dict[section]: try: # Read the value from section 'Fruit', option 'Apple' currentVal = config.get( section, option ) print "Current value of " + section + " - " + option + ": " + currentVal # If the value is not the right one if currentVal != dict[section][option]: print "Replacing value of " + section + " - " + option + ": " + dict[section][option] # Then we set the value to 'Llama' config.set( section, option, dict[section][option]) except: print "Could not find " + section + " - " + option # Rewrite the configuration to the .ini file with open(r'C:\Path\To\desktop.ini', 'w') as myconfig: config.write(myconfig) 

以下是输出desktop.ini文件:

 [.ShellClassInfo] iconresource = somePath.dll,0 [Fruits] apple = Green strawberry = Red [Vegies] potatoe = Green carrot = Orange [RandomClassInfo] foo = somePath.ddsll,0 

我唯一的问题是,这些选项丢失了他们的第一个字母大写。