Finderで選択されているファイルの完全なパスを取得しようとしています。この時点で、私は多くの方法を試してみました:これらのコマンドのFinderで選択されたファイルのposixパスを取得するにはどうすればよいですか?
>> Application('Finder').selection()[0]
=> Application("Finder").startupDisk.folders.byName("Users").folders.byName("example").folders.byName("Tools").folders.byName("my-tools").documentFiles.byName("example.sh")
>>
>> Application('Finder').selection()[0].name()
=> "example.sh"
>>
>> Application('Finder').selection()[0].toString()
=> "[object ObjectSpecifier]"
>>
>> Application('Finder').selection()[0].posixPath()
!! Error on line 1: Error: Can't get object.
>>
>> Application('Finder').selection()[0].path()
!! Error on line 1: Error: Can't get object.
>>
>> Application('Finder').selection()[0].url()
=> "file:///Users/example/Tools/my-tools/example.sh"
>>
>> Path(Application('Finder').selection()[0])
!! Error on line 1: Error: Can't get object.
>>
>> Path(Application('Finder').selection()[0]).toString()
!! Error on line 1: Error: Can't get object.
なし/Users/example/Tools/my-tools/example.sh
あるPOSIXパスを取得していません。
最終的に、私は単純に、URLの前のオフfile://
を取り除くことができます知っている:
>> Application('Finder').selection()[0].url().replace(/^file:\/\//, '')
=> "/Users/example/Tools/my-tools/example.sh"
をしかし、それはハックようだ、と直接POSIXのパスを取得するためのコマンドがあるべきように思えます。
また、JXA用のAPIドキュメントがある場合は、誰かが私に指摘できたら大変感謝しています。私は[JXA Cookbook](https://github.com/dtinth/JXA-Cookbook/wiki)と[JXAリリースノート](https://developer.apple.com/library/content/releasenotes/InterapplicationCommunication /RN-JavaScriptForAutomation/Articles/OSX10-10.html)、各オブジェクト(ファイルなど)に存在するすべてのメソッドとプロパティを単に示すドキュメントは表示されません。 – stiemannkj1
JXAは、AppleScriptのように、自動化可能なアプリケーションとスクリプト拡張によって提供されるAppleEvent定義を使用します。このようなライブラリのドキュメントを表示するには、Script Editorを開き、ライブラリウィンドウを表示するように設定し、関連するアプリケーションまたは拡張機能(この場合はFinder)をダブルクリックしてライブラリビューアを開きます。ドキュメントを表示する言語を選択するドロップダウンがあります。主にJXAを使用している場合は、スクリプトエディタの環境設定でその言語を標準言語として設定することもできます。 – kopischke