PathInfo は、ファイル参照の変換、およびファイルパスからの様々な情報の取得をオブジェクト指向でおこなえるようにする AppleScript モジュールです。
AppleScript では、alias、File URL、POSIX パス、HFS パスなど様々なファイル参照形式が使われますが、これらを統一的に扱うことができるようになります。
property PathInfo : module
property loader : boot (module loader) for me
set a_path to "/Library/Scripts/Basics/AppleScript Help.scpt"
(**)
PathInfo's name_of(a_path)
--
PathInfo's basename_of(a_path)
--
PathInfo's path_extension_of(a_path)
--
PathInfo's split_name("basename.txt")
--
PathInfo's folder_of(a_path)
--
(**)
set a_pathinfo to PathInfo's make_with(a_path)
a_pathinfo's item_name()
--
a_pathinfo's basename()
--
a_pathinfo's path_extension()
--
a_pathinfo's is_folder()
--
a_pathinfo's item_exists()
--
a_pathinfo's is_posix()
--
(**)
a_pathinfo's as_alias()
--
a_pathinfo's as_furl()
--
a_pathinfo's posix_path()
--
a_pathinfo's hfs_path()
--
(**)
a_pathinfo's parent_folder()'s posix_path()
--
a_pathinfo's change_name("new_item")'s posix_path()
--
a_pathinfo's change_path_extension("txt")'s posix_path()
--
a_pathinfo's change_folder("/aaa/bbb/")'s posix_path()
--
a_pathinfo's child("child_item")'s posix_path()
--
同じ目的で PathAnalyzer というモジュールを公開していたけど、PathInfo で置き換えていく予定です。PathAnalyzer より、PathInfo の方が次のように、いいところがいっぱいある。
- オブジェクト指向
- HFS パスも POSIX パスも同等に扱える。
- HFS パスを指定しない限り、内部での処理は POSIX パスを利用する。
- 起動ディスク以外のディスクのパスも安定して処理できます。
また、XFile の一部の機能とかぶる。これから、XFile は PathInfo を使った実装に置き換えて、PathInfo + (ファイルの移動/リネームなど)+(ファイル情報の取得)という PathInfo の機能強化版のようにする予定。
じゃあ、XFile と PathInfo のどちらかに統一しちゃいないよ、という気がしないでも無い。でも、XFile に全部つっこむと、実装が大きくなりすぎちゃう。PathInfo だけでも用が足りることは少なくないので、別モジュールにすることにしました。