在python中确定Windows special-folders和{a2}路径的最佳方法是什么?在
我为特殊文件夹发现了两个流行的方法,即a.k.aCSIDL,但对于KNOWNFOLDERID还没有什么简单明了的方法。保持了向后兼容性,因此CSIDL方法仍然有效,但是自windowsxp以来引入的任何特殊/已知文件夹都不会在那里枚举。“新”不可用的示例包括下载、播放列表、程序文件x64。
特殊文件夹
Find system folder locations in Python-最简单的CSIDL方法,依赖于win32com,适用于AllUsersDesktop、AllUsersStartMenu、AllUsersPrograms、AllUsersStartup、桌面、收藏夹、字体、MyDocuments、NetHood、printfood、Recent、SendTo、StartMenu、Startup&Templates(列表可能不完整)。
How to get path of Start Menu's Programs directory?-具有与上述相同的方法,以及直接使用ctypes的方法,因此不需要win32com(不那么清晰或直接)
已知文件夹
两者合二为一
正如Known Folders上的MSDN概述文档所述,您可以使用新的shell包装器函数^{} ,而不是旧的},也可以通过COM使用完整的^{} 接口。在
SHFolderPath
或{不幸的是,我面前没有一台Windows机器,MSDN的示例下载没有响应,所以我要做一些猜测。但可能是这样的:
如果} 上查找这些值,并自己定义所需的常量。在
shellcon
没有FOLDERID
值,则必须在^{如果
shell
没有SHGetKnownFolderPath
函数,则必须实例化一个IKnownFolderManager
并调用GetFolderByName
。在如果
shell
甚至没有IKnownFolderManager
但是一个快速的Google显示it was added in build 218,那么这就不是问题了。在如果您希望通过
^{pr2}$ctypes
而不是win32com
来完成,那么它将如下所示(同样,未经测试,因为我没有Windows设备,而且MSDN的服务器已损坏):相关问题 更多 >
编程相关推荐