如何实现 "Reveal in Finder" 的功能

如何实现 "Reveal in Finder" 的功能

Sublime、VSCode 这些编辑器都有一个 "Reveal in Finder" 的功能(macOS 是 Finder, Windows 下是 "Reveal in Explorer", Linux 下是 "Open Containing Folder"),就是针对某个文件,使用系统默认的文件管理器打开其所在目录,并选中该文件。

大部分文件管理器的命令都有打开目录并选中指定文件的参数。所以要想在自己的程序中实现类似功能,只需要:

  1. 找到对应系统的文件管理器命令。macOS 是 "open", Windows 是 "explorer.exe"。 Linux 则比较复杂了,Ubuntu 默认是 "nautilus", Kali 默认是 "thunar"
  2. 确定文件管理器命令是否支持选中文件?如果支持,命令行参数是什么?
    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 不需要额外参数,默认就会帮忙选中指定文件
  3. 在代码中启动子进程来调用命令。比如 python 中就是 subprocess.run(['open', '-R', 'file_full_path'])

 

另外,可以参考一个开源库:https://github.com/damonlynch/showinfilemanager

Leave a Reply

Your email address will not be published. Required fields are marked *