スクスニップ

AppleScriptの断片をここに書く

フォルダ内のファイル・フォルダ一覧を作成する

=== ↑ 書籍の JavaScriptAppleScript に翻訳しています ===

書籍 2-8 ファイル/フォルダ : 01 選択したフォルダ内のファイル/フォルダ一覧を作成する

書籍ではInDesignJavaScriptでフォルダ選択のダイアログを表示し、フォルダ内の情報にアクセスしていますが、AppleScriptは、言語自体にダイアログ表示機能があります。

また、フォルダやファイルのリストを取得するには、"Finder.app"に命令しMacファイルシステムにアクセスします。

それに加えて、MacOSのベースはBSD系のUNIXなので、シェルにコマンドを発行し、結果を得ることも可能です。

フォルダ選択ダイアログを表示するAppleScript

choose folder

です。ダイアログに何らかのメッセージを加える場合には、

choose folder with prompt "フォルダを選択してくだサイ"

と、プロンプトオプションを追加します。 選択したフォルダの情報は

result

に alias のクラスが入ってるので、それを取得するか、

set myFolder to choose folder with prompt "もういちど、フォルダを選択してくだサイね"

と変数で受ける方法もあります。

上で set した myFolder を Finder.app に渡すと、フォルダ内のアイテムが取得できます。

tell application "Finder"
    set myList to every item of myFolder
end tell

と変数で受ける方法もあります。

上で set した myFolder を Finder.app に渡すと、フォルダ内のアイテムが取得できます。 myList には Finderの参照形式が入っています。これを文字列として取り出すには、もう一仕事必要です。 Finder参照形式 -> alias クラスへ変換 -> 文字列へ変換

set res to {}
repeat with myItem in myList
    set end of res to ((myItem as alias) as string)
end repeat
res

変数 res には「文字列」のファイル・フォルダリストが入っています。 それぞれの文字列は ... as alias で alias オブジェクトに変換すると、AppleScriptが理解できる形式になります。

次回は、指定されたフォルダ内の全てのアイテム(サブフォルダの中を含む)を取得します。

OSのバージョン * MacOS Catarina 10.15.5

▼サンプルファイル www.dropbox.com