5

AppleScript を使用して、ファイルまたはフォルダを一度に選択できますか?

今私は使用することができます

tell application "SystemUIServer" to return POSIX path of (choose file)

また

tell application "SystemUIServer" to return POSIX path of (choose folder)

ファイルまたはフォルダを取得します。ただし、一度にファイルまたはフォルダーを取得することはできません。

4

2 に答える 2

4

いいえ、「ファイルを選択する」または「フォルダーを選択する」という動詞ではできませんが、ファイルまたはフォルダー (または複数のファイル/フォルダー) の選択は、基になるNSOpenPanel. したがって、AppleScriptObjC でそれを行うことができます。ASObjCRunnerを使用した例を次に示します ( hereから派生)。

script chooseFilesOrFolders
    tell current application's NSOpenPanel's openPanel()
        setTitle_("Choose Files or Folders") -- window title, default is "Open"
        setPrompt_("Choose") -- button name, default is "Open"

        setCanChooseFiles_(true)
        setCanChooseDirectories_(true)
        setAllowsMultipleSelection_(true) -- remove if you only want a single file/folder

        get its runModal() as integer -- show the panel
        if result is current application's NSFileHandlingPanelCancelButton then error number -128 -- cancelled
        return URLs() as list
    end tell
end script

tell application "ASObjC Runner"
    activate
    run the script {chooseFilesOrFolders} with response
end tell

ASObjCRunner はNSArrayNSURLオブジェクトの a を AppleScript のfiles のリストに変換します。結果は次のようになります。

{file "Macintosh HD:Users:nicholas:Desktop:fontconfig:", file "Macintosh HD:Users:nicholas:Desktop:form.pdf"}
于 2013-10-23T20:01:44.597 に答える
0

まず、そのために言う必要はありません。

POSIX path of (choose file)

第二に、なぜこれが必要なのかが明確ではありません。ファイルとそのフォルダを選択したいということですか?それはあなたのやり方ではありません。ファイルを選択し、それを含むフォルダーのファイル パスを解析するか、多くの方法のいずれかを使用して、次のようにします。

set f to (choose file)
set posixF to POSIX path of f
tell application "Finder" to set filesDir to container of f as alias as text
set posixDir to POSIX path of filesDir

{f, posixF, filesDir, posixDir}

同時に複数のフォルダーとファイルを選択できるようにしたい場合、これを行うための「純粋なAppleScript」の方法はないと思います(ドラッグドロップ対応のスクリプトアプリケーションを使用する以外に)。

于 2013-10-23T19:39:00.677 に答える