Adobe AIRで作るデスクトップアプリケーション

第7回 ファイルシステムAPI(その1)

この記事を読むのに必要な時間:およそ 4 分

ファイルやディレクトリの作成

ファイルやディレクトリの作成を行うには,Fileクラスの以下のメソッドを使います。

ディレクトリを作成createDirectory()
一時ファイルを作成createTempFile()
一時ディレクトリを作成createTempDirectory()

作成したいディレクトリをFileオブジェクトに指定し,createDirectory()を実行するとディレクトリが作成されます。指定のディレクトリが既に存在する場合は何もしません。

var dir:File = File.desktopDirectory.resolve("Sounds");
dir.createDirectory();

createTempFile()とcreateTempDirectory()は,一時ファイルや一時ディレクトリを作成しFileオブジェクトとして返します。これらは静的メソッドです。実行するたびに新規のユニークなものを作成します。

var tempFile:File = File.createTempFile();
var tempDir:File = File.createTempDirectory();

なお,一時ファイルや一時ディレクトリはAIRアプリケーションを終了しても自動的には削除されません。不要になったら明示的に削除する必要があります。

ファイルやディレクトリの削除

ファイルやディレクトリの削除を行うには,Fileクラスの以下のメソッドを使います。ゴミ箱への移動に関しては,実際の削除までは行われません。

同期メソッド非同期メソッド
ファイルを削除deleteFile()deleteFileAsync()
ディレクトリを削除deleteDirectory()deleteDirectoryAsync()
ファイルやディレクトリをゴミ箱へ移動moveToTrash()moveToTrashAsync()

メソッドの使い方はこれまで説明してきたものと同様で,対象となるFileオブジェクトに対して呼び出します。いずれも指定のパスが無かったり使用中で削除できない場合はエラーとなります。

deleteDirectory()とdeleteDirectoryAsync()は引数を1つ取ります。指定のディレクトリにファイルやサブディレクトリが含まれていた場合に削除するかどうかを指定するフラグです。false(デフォルト値)の場合,空でないディレクトリを削除しようとするとエラーとなります。

ディレクトリの内容を調べる

ディレクトリ内にどのようなファイルやフォルダがあるか調べるには,Fileクラスの次のメソッドを使います。

同期メソッド非同期メソッド
ディレクトリ内の一覧を取得listDirectory()listDirectoryAsync()

これらのメソッドは,指定のディレクトリ内にあるファイルやディレクトリを配列で返します。配列の各要素はFileオブジェクトです。なお,配列に含まれるのは指定のディレクトリの直下にあるものだけで,サブディレクトリの内容は列挙されません。次のコードはデスクトップディレクトリの内容を出力します。

var dir:File = File.desktopDirectory;
var files:Array = dir.listDirectory();
for (var i:uint = 0; i < files.length; i++) {
	trace(files[i].nativePath);
}

著者プロフィール

タナカヤスヒロ

早稲田大学卒業後,DTP業務を経てマルチメディア系制作会社へ。Macromedia Directorにのめり込む。フリーランスとなりFlashにシフトしてからもデスクトップ絡みの仕事が絶えず,Apolloにも勝手に縁を感じている。現在株式会社antsに所属。ants Lab.にも記事を上げている。

URLhttp://labs.anthill.jp/

著書