指定ファイルの拡張子を取得するAppleScriptです。
純粋にパス文字列から拡張子を取得する方法(テキストを逆順に変換してピリオドに遭遇するところまでを拡張子とみなす)などもありますが、それは当時の環境(AppleScript Studio)でエラーの出にくい処理方法を選択したものでした。
FinderやSystem Eventsの機能を用いて拡張子を取得するのが一番手軽ではあるのですが、macOS 10.14以降の環境ではこの程度でもアプリケーションの機能を呼び出すと認証ダイアログが(初回のみですが)表示されます。Cocoaの機能呼び出しが手軽にできるので、些細な処理でもよく呼び出して使っています(個人的に)。
Mac App Storeに出すアプリケーションの内部で、ファイルの拡張子を求めるためだけにFinderやSystem Eventsのコントロールを行おうとするのはリジェクトの原因になります。そういう場合には純粋に文字列処理するか、Cocoaの機能を用いることになるでしょう。
AppleScript名:指定ファイルの拡張子を取得する |
use AppleScript version "2.4" use scripting additions use framework "Foundation" set a to choose file set aPath to POSIX path of a set pathString to current application’s NSString’s stringWithString:aPath set newPath to (pathString’s pathExtension()) as string –> "jpg" |
AppleScript名:ファイルから拡張子を取得(Finder) |
set aFile to choose file
tell application "Finder" set aExt to name extension of aFile end tell |
AppleScript名:ファイルから拡張子を取得(System Events) |
set aFile to choose file
tell application "System Events" set aExt to name extension of aFile end tell |