Home >XModules >

必要なシステム

ダウンロード

Version 1.7 -- 2017-04-14

古いバージョン

依存モジュール

XFile

XFile はファイル操作(移動/削除、属性の取得などなど)に統一的なオブジェクト指向インターフェースを与えるAppleScript モジュールです。

AppleScript でのファイル操作はスクリプティング機能追加、Finder、System Evetns、シェルコマンドを駆使して行えますが、機能がいろんなところに分散していて非常に煩雑です。XFile はこれらを隠蔽して、よく整理されたインターフェースのファイルオブジェクトを導入します。

use XFile : script "XFile"
use scripting additions

(* Make a New Instance *)
set a_xfile to XFile's make_with("/Users")
set home_folder to XFile's make_with(path to home folder)

(* Obtain File Infomation *)
log a_xfile's is_folder() -- true
log a_xfile's is_package() -- false
log a_xfile's item_name() -- "Users"

(* Obtain Parent and Child *)
log home_folder's parent_folder()'s posix_path()
-- "/Users"
log home_folder's child("Documents")'s posix_path()
-- "/Users/yourhome/Documents"
log home_folder's child("Library/Scripts")'s posix_path()
-- "/Users/yourhome/Library/Scripts"
log home_folder's unique_child("Documents")'s posix_path()
--"/Users/yourhome/Documents 2"

(* Read and Write *)
set test_file to home_folder's child("testfile")
test_file's write_as_utf8("new data")
log test_file's read_as_utf8() -- "new data"

(* File Manipulations *)
log test_file's item_exists() --true

set test_file2 to test_file's copy_to(home_folder's child("testfile2"))
log test_file2's posix_path() -- "/Users/yourhome/testfile2"

test_file2's move_to(home_folder's child("Documents"))
log test_file2's posix_path() -- "/Users/yourhome/Documents/testfile2"

test_file2's into_trash()
log test_file2's posix_path() -- "/Users/yourhome/.Trash/testfile2"
test_file's into_trash()

(* Working with Shell Commands *)
log test_file's perform_shell("cat %s") -- "new data"

更新履歴

  • 1.7 -- 2017-04-14
    • OS X 10.9 で導入された AppleScript Libraries として使えるようにした。
    • ModuleLoader.osax への依存性を無くした。
    • OS X 10.9 以降が必要になった。
    • ヘルプの更新。
  • 1.6 -- 2015-09-04
    • move_with_replacing を追加。
    • voluem_name を追加。
  • 1.5 -- 2012-06-01
    • info_with_size を追加。
    • perform_shell を追加。
    • shell_test を追加。
    • is_symlink を追加。
    • info() で得られるファイル情報にはサイズは含まれなくなった。
    • resolve_alias でシンボリックリンクを扱えるようにした。
    • copy_to, copy_with_opts の実行速度を改善。
    • make_with_pathinfo, change_path_extension のヘルプの間違いを修正。
  • 1.4 -- 2012-05-26
    • normalized_posix_path を追加。
    • item_exists_without_update を追加。
    • each を追加。
  • 1.3.3 -- 2011-02-10
    • resolve_alias が動作しない不具合を修正。
    • is_folder を修正。info for の結果を使用するようにした。
  • 1.3.2 -- 2010-09-09
    • 拡張子がないファイル名に対して unique_child を実行すると、正常に動作しない不具合を修正。
  • 1.3.1 -- 2010-06-16
    • HFS パスから XFile のインスタンスを作った場合、unique_child が、正常に動作しない不具合を修正。
    • 拡張子がないファイル名に対して unique_child を実行すると、正常に動作しない不具合を修正。
  • 1.3 -- 2010-03-25
    • モジュールのロードに ModuleLoader 2.1.1 以降が必須になった。
    • PathAnalyzer の代わりに、PathInfo を使うようにした。
    • ShowHelpBook への依存性を無くした。
    • make_with で POSIX パスを受け付けるようにした。
    • make_with_pathinfo を追加。
    • make_with_record を廃止。
    • folder_name を廃止。
    • child, make_folder, make_path には HFS パスではなく POSIX パスを渡す。
    • copy_with_opts を追加
    • copy_to および copy_with_opts のコピー先として相対パスをうけつける。
    • as_furl を追加。
    • make_path の引数でオプションを指定できるようにした。
  • 1.2.2 -- 2009-11-09
    • remove() が自分自身を返り値とします。
    • remove() したあとも、インスタンスはファイル参照として有効です。
    • copy_to で日付などのファイル属性を保存するようにした(cp コマンドに -p オプションをつけるようにした。)。
  • 1.2.1 -- 2009-03-09
    • 日本語マニュアルをヘルプビューアで表示できない不具合を修正。
  • 1.2 -- 2009-02-18
    • unique_child() が Mac OS X 10.5 で正しく動作しない不具合を修正
    • UniqueNamer への依存性を無くした。
  • 1.1.2 -- 2009-01-29
    • item_exists() が実行された時、内部で使用しているエイリアス形式の参照を再構築するようにした。
  • 1.1.1 -- 2008-11-03
    • ファイル参照形式として、alias が与えられたときも、item_exists() はファイルが実際に存在するかどうか調べるようにした。
    • PathAnalyzer 1.7.1 により、Mac OS X 10.5 との互換性を改善。
  • 1.1 -- 2008-03-20
    • move_to メソッドを mv コマンドを使ったものに変更
    • move_to メソッドで boolean を返すようにした。
    • マニュアルの間違いをいくつか修正
  • 1.0 -- 2007.08.15
    • 初公開