フォルダ内のファイル・フォルダ一覧を作成する
=== ↑ 書籍の JavaScript を AppleScript に翻訳しています ===
書籍 2-8 ファイル/フォルダ : 01 選択したフォルダ内のファイル/フォルダ一覧を作成する
書籍ではInDesignのJavaScriptでフォルダ選択のダイアログを表示し、フォルダ内の情報にアクセスしていますが、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