启动 Finder 窗口并选择特定文件
我正在尝试以编程方式从 Xcode 项目启动 OS X Finder 窗口。我需要打开一个特定文件夹的窗口,并自动选择该文件夹中的特定文件。
这类似于 Xcode 和相关应用程序中使用的“在 Finder 中显示”功能。
有谁知道如何在 Objective-C、Swift、AppleScript 或 Finder 命令行参数中执行此操作?
I'm trying to programmatically launch an OS X Finder window from an Xcode project. I need the window to open to a specific folder and have specific files within that folder automatically selected.
This is similar to the "Show in Finder" functionality used in Xcode and related apps.
Does anyone know how to do this in either Objective-C, Swift, AppleScript, or Finder command-line parameters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
Objective-C版本:
Objective-C version:
另一种 AppleScript 风格 - Finder 的显示命令将打开包含文件夹的窗口并选择项目。如果有多个包含文件夹,则会打开多个 Finder 窗口。
Another AppleScript flavor - the Finder's reveal command will both open a window to the containing folder and select the item(s). If there are multiple containing folders, multiple Finder windows will be opened.
斯威夫特版本:
Swift version:
在 Finder 中显示多个文件
open -R
仅适用于单个文件。我们可以使用 Apple Script 来代替。
从 user866649 的 回答 中,我们可以将其移植到 shell 脚本,如下所示:
刚刚创建了一个实用程序脚本:
finder .sh
然后尝试一下:
它应该打开 Finder 并选择“下载”和“桌面”文件夹。
Reveal multiple files in Finder
As
open -R <path-to-reveal>
only works for single file.We can use Apple Script instead.
From user866649's answer, we can port it to a shell script as the following:
Just created a utility script:
finder.sh
Then try it:
It should open Finder and selects both Downloads and Desktop folder.
我发现 activateFileViewerSelectingURLs 在 Yosemite 上不起作用(至少在与 Finder 不同的空间中时)。它会导致切换到 Finder 空间,但似乎不会选择 URL。使用:
将从全屏应用程序切换空间并选择路径。
I'm finding that activateFileViewerSelectingURLs is not working on Yosemite (at least when in separate space from Finder). It will cause a switch to the Finder's space but won't seem to select the URL. Using:
will switch spaces from full screen app and select path.
在
path
打开文件时:When opening a file at
path
:斯威夫特 3.2/4.0 版本:
Swift 3.2/4.0 Version: