Sublime、VSCode 这些编辑器都有一个 “Reveal in Finder” 的功能(macOS 是 Finder, Windows 下是 “Reveal in Explorer”, Linux 下是 “Open Containing Folder”),就是针对某个文件,使用系统默认的文件管理器打开其所在目录,并选中该文件。
大部分文件管理器的命令都有打开目录并选中指定文件的参数。所以要想在自己的程序中实现类似功能,只需要:
- 找到对应系统的文件管理器命令。macOS 是 “open”, Windows 是 “explorer.exe”。 Linux 则比较复杂了,Ubuntu 默认是 “nautilus”, Kali 默认是 “thunar”
- 确定文件管理器命令是否支持选中文件?如果支持,命令行参数是什么?
macOS open -R file_full_path
-R, –reveal Windows explorer.exe /select, file_full_path
注意是 /select, Ubuntu nautilus -s file_full_path
-s, –select Kali thunar file_full_path
不需要额外参数,默认就会帮忙选中指定文件 - 在代码中启动子进程来调用命令。比如 python 中就是
subprocess.run(['open', '-R', 'file_full_path'])
另外,可以参考一个开源库:https://github.com/damonlynch/showinfilemanager