2010-12-30 5 views
4

Finderで選択したファイルへのパスの配列を取得する方法を教えてください。Finderで選択したファイルへのパスを取得

私は検索しましたが、AppleScriptに関するリンクしか見つかりませんでした。私もNSWorkspaceNSFileManagerを見ましたが、何も見つかりませんでした。

答えて

5

AppleScriptを使用して特定のFinderウィンドウで選択したファイルのリストを取得することができれば、おそらくをCocoaアプリケーションで使用してFinderとのインタフェースをとることができます。

Scripting Bridgeは、Cocoa開発者がスクリプト対応アプリケーションをより簡単に制御して通信できるようにするフレームワークとテクノロジです。 AppleScriptスクリプトをアプリケーションに組み込むか、Appleイベントの送信と処理の複雑さに対処する代わりに、スクリプトインタフェースを使用してアプリケーションを表すオブジェクトにObjective-Cメッセージを送信するだけで済みます。あなたのCocoaアプリケーションは、AppleScriptスクリプトができることは何でもできますが、プロジェクトのコードの残りの部分と統合されたObjective-Cコードではそうしています。

Finderまたはより具体的にはFinderウィンドウを表すCocoaクラスはありません。 Finderはアプリケーションであり、スクリプト可能なアプリケーションであるため、Scripting Bridgeはやり方です。 Bavariousの(正しい)答え@上の拡大

15

は、ここで私はスクリプトブリッジを使用してFinderから選択を得ている方法は次のとおりです。私は戻ってコンピュータにいる時よさそうだ

#import "Finder.h" //my copy is here: https://github.com/davedelong/BetterInfo/blob/master/Finder.h 

FinderApplication * finder = [SBApplication applicationWithBundleIdentifier:@"com.apple.finder"]; 
SBElementArray * selection = [[finder selection] get]; 

NSArray * items = [selection arrayByApplyingSelector:@selector(URL)]; 
for (NSString * item in items) { 
    NSURL * url = [NSURL URLWithString:item]; 
    NSLog(@"selected item url: %@", url); 
} 
+0

が、しようとします。 – Joshua

+0

いい仕事がそれを実装しています。 =) –

+0

すごくうれしくありがとう! – Joshua

関連する問題