choose fileコマンドを拡張して、選択対象をUTIではなくファイル拡張子で指定できるようにしたAppleScriptです。
もともと、Classic Mac OSの時代からファイルのタイプを指し示す識別子としてFile Type(”PICT”とか”MooV”とか)が存在していましたが、OS X 10.6あたりで廃止になり、ウヤムヤのまま部分的に延命してきたものの、macOS 10.13でファイルシステムにAPFSを採用(File Typeなどの情報がFile System上に存在しない)したことにより、完全に使用不能になりました。
ファイルの区別に利用してきた情報としては、File type以外にも、
拡張子(複数の書き方をすることがある。.jpgとか.jpegとか)
ファイルkind(ローカライズされている)
type identifier(UTIのこと)
が存在しています。
「すべての画像」「プレーンテキスト全般」といったざっくりとした指定が可能なUTIは、AppleScript側にあまり機能が解放されておらず、あまり利用できていなかったのですが、macOS 10.10でCocoaの機能が利用できるようになってからはUTIの利用もすすんできました。
ただ、それなりに調べる作業も必要だったり、ツールを併用する必要もあったりするので、ファイル拡張子からUTIをScriptで調べて指定できたほうが便利な場合もあるのでは? と考え、このようなルーチン(+命令拡張)を書いてみたものです。
AppleScript名:拡張子でUTIを指定しつつchoose file of type |
— Created 2018-1-20 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use framework "Foundation" use scripting additions use BridgePlus : script "BridgePlus" –https://www.macosxautomation.com/applescript/apps/BridgePlus.html set aFile to choose file of type {"jpg", "png"} with prompt "This is a message" set bFile to choose file of type {"scpt", "scptd"} with prompt "With default locaion" default location (path to desktop) on choose file of type extList with prompt aMes as string : "" default location aLoc : missing value set utiList to {} repeat with i in extList set the end of utiList to retFileFormatUTI(i) of me end repeat if aLoc = missing value then continue choose file of type utiList with prompt aMes else continue choose file of type utiList with prompt aMes default location aLoc end if end choose file on retFileFormatUTI(aExt as string) load framework return (current application’s SMSForder’s UTIForExtension:aExt) as string end retFileFormatUTI |
More from my site
(Visited 422 times, 1 visits today)