web-dev-qa-db-ja.com

特定のファイルを選択してOSXFinderウィンドウを起動する

XcodeプロジェクトからOSXFinderウィンドウをプログラムで起動しようとしています。特定のフォルダを開き、そのフォルダ内の特定のファイルを自動的に選択するには、ウィンドウが必要です。

Objective C、applescript、またはFinderコマンドラインパラメータのいずれかでこれを行う方法を知っている人はいますか?

ありがとう!

42
simon.d

Objective-Cバージョン:

NSArray *fileURLs = [NSArray arrayWithObjects:fileURL1, /* ... */ nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
86
Wevah
$ open -R <path-to-reveal>
18
Matt McClure

もう1つのAppleScriptフレーバー-Finderのrevealコマンドは、含まれているフォルダへのウィンドウを開き、アイテムを選択します。含まれているフォルダが複数ある場合は、複数のFinderウィンドウが開きます。

tell application "Finder" 
   to reveal {someAlias, "path/to/POSIXfile" as POSIX file, etc}
7
user866649

Swiftバージョン:

    let paths = ["/Users/peter/foo/bar.json"]
    let fileURLs = paths.map{ NSURL(fileURLWithPath: $0)}
    NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(fileURLs)
1
Klaas

ActivateFileViewerSelectingURLsがYosemiteで機能していないことがわかりました(少なくともFinderとは別のスペースにある場合)。 Finderのスペースに切り替わりますが、URLを選択していないようです。使用:

  • (BOOL)selectFile:(NSString *)fullPath inFileViewerRootedAtPath:(NSString *)rootFullPath

フルスクリーンアプリからスペースを切り替え、パスを選択します。

1
Joshua Fagans

pathでファイルを開く場合:

NSString* path = @"/Users/user/Downloads/my file"
NSArray *fileURLs = [NSArray arrayWithObjects:[NSURL fileURLWithPath:path], nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
0
maxisme

Swift 3.2/4.0バージョン:NSWorkspace.shared.activateFileViewerSelecting([outputFileURL])

0
UnchartedWorks