我有以下代码显示Windows文件夹选择窗口:
from comtypes.client import CreateObject
shell = CreateObject("Shell.Application")
folder = shell.BrowseForFolder(0, "Select a folder", 1)
Microsoft doc没有说明如何检索(选定的)文件夹路径,无论如何,VB的网络上存在一个解决方案(例如here):
path = folder.Self.Path
此解决方案不会转换为comtypes,并且help(folder)
不会显示任何Self
属性,BrowseForFolder
似乎会返回FOLDER
类型,但{{1} }}是Self
类型的属性,任何人都知道为什么?
答案 0 :(得分:0)
正如上面的TessellatingHeckler所说,它适用于win32com:
import win32com.client
shell = win32com.client.Dispatch("Shell.Application")
folder = shell.BrowseForFolder(0, "Now browse...", 1)
print(folder.Self.Path)
但是如果你真的想使用comtypes,这里有一个解决方法:
from comtypes.client import CreateObject
shell = CreateObject("Shell.Application")
folder = shell.BrowseForFolder(0, "Now browse...", 1)
name = folder.Title
for item in folder.ParentFolder.Items():
if item.Name == name:
print(item.Path)