这是一个基于 Python 的实用工具,旨在解决 Windows 旧版“浏览文件夹” (Browse For Folder) 对话框无法直接输入路径的痛点。
通过运行此脚本,你可以将目标路径复制到剪贴板,然后在对话框中按下 Ctrl+L,脚本会自动解析路径并控制 TreeView 逐级展开并定位到目标文件夹。
- 快捷键触发:按下
Ctrl+L一键导航。 - 自动路径解析:智能识别剪贴板中的路径(支持盘符
C:\和 UNC 路径\\Server\Share)。 - 精准匹配:采用了检测
SHBrowseForFolder ShellNameSpace Control类名的方式定位目标窗口,避免了无关 TreeView 控件的干扰。 - 本地化支持:能够处理 Windows 的特殊文件夹名称(如将路径中的
Users识别为显示的用户,Desktop识别为桌面),确保 TreeView 匹配准确。 - 自动化操作:使用
pywinauto自动展开节点并滚动至可见。 - 完全后台工作:脚本在后台运行,目标窗口不激活亦可实现导航操作。
- Windows 操作系统 (建议 Windows 10/11)
- Python 3.x
建议创建一个虚拟环境,然后安装 requirements.txt 中的依赖:
pip install -r requirements.txt以管理员身份运行主程序(推荐,确保 keyboard 模块能正常拦截全局热键):
python browse_dialog_navigator.py此时终端会显示:运行中:Ctrl+L 导航 '浏览文件夹' 对话框路径
如果你手头没有正在打开的“浏览文件夹”对话框,可以使用项目中提供的测试脚本来模拟一个:
python test_browse_dialog.py这将打开一个标准的 Windows 文件夹选择窗口。
- 将你想要跳转的路径复制到剪贴板,例如:
C:\Windows\System32。 - 确保“浏览文件夹”对话框已经打开,但不必激活。
- 按下键盘上的
Ctrl + L。 - 观察脚本自动展开树状列表并选中目标文件夹。
browse_dialog_navigator.py: 核心脚本。包含路径解析、Shell 本地化名称获取以及 GUI 自动化逻辑。test_browse_dialog.py: 测试脚本。调用Shell.Application弹出一个遗留样式的文件夹选择框,用于验证导航功能。
-
管理员权限:
keyboard模块监听全局热键通常需要管理员权限,如果按下快捷键无反应,请尝试以管理员身份运行终端。 -
路径名称匹配: 脚本尝试通过 Windows Shell API 获取文件夹的“显示名称”(Display Name)以匹配 TreeView 中的节点文字(例如实际路径是
C:\Users但显示为用户)。这解决了大部分导航失败的问题,但在极少数自定义严重的系统环境中可能仍有偏差。
MIT License