启动OSX Finder窗口,并select特定的文件
我试图以编程方式从Xcode项目启动OSX Finder窗口。 我需要打开窗口打开特定的文件夹,并自动select该文件夹中的特定文件。
有谁知道如何在目标c,applescript或Finder命令行参数中执行此操作?
谢谢!
Objective-C版本:
NSArray *fileURLs = [NSArray arrayWithObjects:fileURL1, /* ... */ nil]; [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
$ open -R <path-to-reveal>
另一个AppleScript的味道 – Finder的揭示命令将打开一个窗口到包含的文件夹,并select项目。 如果有多个包含文件夹,将会打开多个Finder窗口。
tell application "Finder" to reveal {someAlias, "path/to/POSIXfile" as POSIX file, etc}
我发现activateFileViewerSelectingURLs不适用于优胜美地(至less在与Finder分开的空间时)。 这将导致切换到Finder的空间,但似乎没有select的URL。 使用:
-
(BOOL)selectFile:(NSString *)fullPath inFileViewerRootedAtPath:(NSString *)rootFullPath
将从全屏应用程序和selectpath切换空间。
Swift版本:
let paths = ["/Users/peter/foo/bar.json"] let fileURLs = paths.map{ NSURL(fileURLWithPath: $0)} NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(fileURLs)
在path
打开文件时:
NSString* path = @"/Users/user/Downloads/my file" NSArray *fileURLs = [NSArray arrayWithObjects:[NSURL fileURLWithPath:path], nil]; [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];