ファイルの操作について
・ | Fileクラスについて |
・ | ファイル入出力支援用のダイアログを表示する |
・ | ファイルやフォルダの情報を取得する |
・ | さまざまなディレクトリパスを取得する |
・ | ファイルやフォルダを作成する |
・ | ファイルやフォルダを移動する |
・ | ファイルやフォルダをコピーする |
・ | ファイルやフォルダを削除する |
Fileクラスについて
■Fileクラスについて
Fileクラスを使用すると、ファイルの名称や作成日、属性といった情報を取得できます。
またファイルの移動やコピー、削除を行う事ができます。
ファイルのデータを読み込んだり、書き込んだりしたい場合は、FileStreamクラスを使用します。
■File オブジェクトを作成する
new 演算子を使って、File クラスをインスタンス化します。
引数に、ファイルのパスを文字列で指定します。(省略可能)
「file プロトコル表記」や、 「Windows や Macintosh でのファイルパス表記」による指定が可能です。
存在しないファイルを指定することも可能です。
ファイルやディレクトリを、新規に作成する時に必要になります。
File オブジェクトを作成する
import flash.filesystem.File;
// ファイルオブジェクトを作成する
var file0 : File = new File();
var file1 : File = new File("C:\\test.txt");
var file2 : File = new File("file:///C:/test.txt");
var file3 : File = new File("/home/user/test.txt");
■相対パスを使って、 File オブジェクトを作成する
「基点としたい任意の File オブジェクト」から、相対パスを指定して、新規に File オブジェクトを作成するには、resolvePath() メソッドを使用します。
引数に相対パスを文字列で指定します。
「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成
import flash.filesystem.File;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var new_file : File = desktop_dir.resolvePath("test.txt");
trace(new_file.nativePath);
ファイル入出力支援用のダイアログを表示する
サンプルをダウンロード
■1つのファイルを開くためのダイアログを表示する
以下の画像ような、「ファイルを開くためのダイアログ」を表示します。
■1つのファイルを開くためのダイアログを表示する
1つのファイルを開くダイアログを表示するには、browseForOpen() メソッドを使用します。
File.browseForOpen ( "ダイアログのタイトル" , [FileFilter] ) :void
第01引数 | String | ダイアログに表示したい文字を指定 |
第02引数(略可) | Array | 選択するファイルの拡張子に制限をつける。 FileFilter 型で配列に格納して指定 |
戻り値 | void | なし |
選択するファイルにフィルタをかけて開くダイアログを表示する
import flash.filesystem.File;
import flash.net.FileFilter;
// 選択するファイルの種類をフィルタリング
var txtFilter0:FileFilter = new FileFilter("テキスト関連のファイル", "*.txt;*.doc;*.html");
var txtFilter1:FileFilter = new FileFilter("Flash関連のファイル", "*.fla;*.swf;");
// ファイルオブジェクトを作成する
var file:File = new File();
// 1つのファイルを開くためのダイアログを表示する(非同期)
file.browseForOpen("ファイルを開く",[txtFilter0,txtFilter1]);
■イベントを使って結果を取得する
ダイアログ表示中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
Event.SELECT イベントと Event.CANCEL イベントに対応しています。
引数から得られる Event オブジェクトの target プロパティから、 File オブジェクトを受け取る事ができます。
開くダイアログを表示して結果を得る
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT , FileBrowseForOpenSelectFunc);
function FileBrowseForOpenSelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
trace("開く : " + select.nativePath);
};
// キャンセルされた時に呼び出されるイベント
file.addEventListener(Event.CANCEL , FileBrowseForOpenCancelFunc);
function FileBrowseForOpenCancelFunc(e:Event):void {
trace("閉じるボタンが押された");
};
// 1つのファイルを開くためのダイアログを表示する(非同期)
file.browseForOpen("ファイルを開く");
■複数のファイルを開くためのダイアログを表示する
以下の画像ような、「複数のファイルを開くためのダイアログ」を表示します。
■複数のファイルを開くためのダイアログを表示する
複数のファイルを開くダイアログを表示するには、browseForOpenMultiple() メソッドを使用します。
File.browseForOpenMultiple ( "ダイアログのタイトル" , [FileFilter] ) :void
第01引数 | String | ダイアログに表示したい文字を指定 |
第02引数(略可) | Array | 選択するファイルの拡張子に制限をつける FileFilter 型で配列に格納して指定 |
戻り値 | void | なし |
選択するファイルにフィルタをかけて開くダイアログを表示する
import flash.filesystem.File;
import flash.net.FileFilter;
// 選択するファイルの種類をフィルタリング
var txtFilter0:FileFilter = new FileFilter("テキスト関連のファイル", "*.txt;*.doc;*.html");
var txtFilter1:FileFilter = new FileFilter("Flash関連のファイル", "*.fla;*.swf;");
// ファイルオブジェクトを作成する
var file:File = new File();
// 複数のファイルを開くためのダイアログを表示する(非同期)
file.browseForOpenMultiple("複数のファイルを開く",[txtFilter0,txtFilter1]);
■イベントを使って結果を取得する
ダイアログ表示中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
複数開くダイアログを表示して結果を得る
import flash.filesystem.File;
import flash.events.Event;
import flash.events.FileListEvent;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(FileListEvent.SELECT_MULTIPLE , FileBrowseForOpenSelectMultipleFunc);
function FileBrowseForOpenSelectMultipleFunc(e:FileListEvent):void {
// 選択した複数ファイル
var files : Array = e.files;
// 配列の中身を列挙
var i : int;
for(i=0;i < files.length;i++){
var select : File = files[i];
trace("開く : " + select.nativePath);
}
};
// キャンセルされた時に呼び出されるイベント
file.addEventListener(Event.CANCEL , FileBrowseForOpenCancelFunc);
function FileBrowseForOpenCancelFunc(e:Event):void {
trace("閉じるボタンが押された");
};
// 複数のファイルを開くためのダイアログを表示する(非同期)
file.browseForOpenMultiple("複数のファイルを開く");
■ファイルを保存するためのダイアログを表示する
以下の画像ような、「ファイルを保存するためのダイアログ」を表示します。
■ファイルを保存するためのダイアログを表示する
ファイルを保存するためのダイアログを表示するには、browseForSave() メソッドを使用します。
File.browseForSave ( "ダイアログのタイトル" ) :void
第01引数 | String | ダイアログに表示したい文字を指定 |
戻り値 | void | なし |
保存するダイアログを表示する
import flash.filesystem.File;
// ファイルオブジェクトを作成する
var file:File = new File();
// ファイルを保存するためのダイアログを表示する(非同期)
file.browseForSave ("ファイルを保存する");
■イベントを使って結果を取得する
ダイアログ表示中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
Event.SELECT イベントと Event.CANCEL イベントに対応しています。
引数から得られる Event オブジェクトの target プロパティから、 File オブジェクトを受け取る事ができます。
保存するダイアログを表示して結果を得る
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT , FileBrowseForSaveSelectFunc);
function FileBrowseForSaveSelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
trace("保存 : " + select.nativePath);
// ファイルに書き込む(実行注意)
/*
var stream:FileStream = new FileStream();
stream.open(select, FileMode.WRITE);
stream.writeUTFBytes("保存テスト");
stream.close();
*/
};
// キャンセルされた時に呼び出されるイベント
file.addEventListener(Event.CANCEL , FileBrowseForSaveCancelFunc);
function FileBrowseForSaveCancelFunc(e:Event):void {
trace("閉じるボタンが押された");
};
// ファイルを保存するためのダイアログを表示する(非同期)
file.browseForSave("ファイルを保存");
■フォルダを選択するダイアログを表示する
以下の画像ような、「フォルダを開くためのダイアログ」を表示します。
■フォルダを選択するダイアログを表示する
フォルダを選択するダイアログを表示するには、browseForDirectory() メソッドを使用します。
File.browseForDirectory ( "ダイアログのタイトル" ) :void
第01引数 | String | ダイアログに表示したい文字を指定 |
戻り値 | void | なし |
フォルダを選択するダイアログを表示する
import flash.filesystem.File;
// ファイルオブジェクトを作成する
var file:File = new File();
// フォルダを選択するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
■イベントを使って結果を取得する
ダイアログ表示中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
Event.SELECT イベントと Event.CANCEL イベントに対応しています。
引数から得られる Event オブジェクトの target プロパティから、 File オブジェクトを受け取る事ができます。
フォルダを選択するダイアログを表示して結果を得る
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT , FileBrowseForDirectorySelectFunc);
function FileBrowseForDirectorySelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
trace("開く : " + select.nativePath);
};
// キャンセルされた時に呼び出されるイベント
file.addEventListener(Event.CANCEL , FileBrowseForDirectoryCancelFunc);
function FileBrowseForDirectoryCancelFunc(e:Event):void {
trace("閉じるボタンが押された");
};
// フォルダを選択するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
ファイルやフォルダの情報を取得する
サンプルをダウンロード
■FileReference クラスのプロパティ
File クラスの派生元である FileReference クラスには、以下プロパティがあります。
プロパティ名 | 型 | 説明 |
name | String | ファイル名 |
extension | String | 拡張子 |
size | Number | サイズ |
type | String | ファイル形式 |
creationDate | Date | 作成日 |
modificationDate | Date | 最終更新日 |
creator | String | クリエータタイプ(Macintosh) |
ファイルの情報を取得する
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT,FileBrowseForOpenSelectFunc);
function FileBrowseForOpenSelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
trace("ファイル名 : " + select.name); // ファイル名
trace("拡張子 : " + select.extension); // 拡張子
trace("サイズ : " + select.size); // サイズ
trace("ファイル形式 : " + select.type); // ファイル形式
trace("作成日 : " + select.creationDate); // 作成日
trace("最終更新日 : " + select.modificationDate); // 最終更新日
trace("クリエータタイプ(Macintosh用) : " + select.creator); // クリエータタイプ(Macintosh用)
};
// 1つのファイルを開くためのダイアログを表示する(非同期)
file.browseForOpen("ファイルを開く");
■File クラスのプロパティ
File クラスには、以下のプロパティがあります。
プロパティ名 | 型 | 説明 |
url | String | ファイルのURLパス |
nativePath | String | 各OSを基準としたディレクトリパス |
icon | Icon | ファイルのアイコン |
isDirectory | Boolean | ディレクトリならtrue 、ファイルなら false |
isHidden | Boolean | 隠し(非表示)属性が付いているか |
isPackage | Boolean | アーカイブ属性が付いているか |
exists | Boolean | ファイルが存在するか |
isSymbolicLink | Boolean | ショートカット(シンボリックリンク)であるか |
ファイルの情報を取得する
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT , FileBrowseForOpenSelectFunc);
function FileBrowseForOpenSelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
trace("ファイルのURLパス : " + select.url); // ファイルのURLパス
trace("各OSでのファイルパス名称 : " + select.nativePath); // 各OSでのディレクトリパス名称
trace("アイコン : " + select.icon); // アイコン
trace("ディレクトリか : " + select.isDirectory); // ディレクトリならtrue ファイルなら false
trace("隠し属性か : " + select.isHidden); // 隠し(非表示)属性が付いているか
trace("アーカイブ属性か : " + select.isPackage); // アーカイブ属性が付いているか
trace("ファイルが存在するか : " + select.exists); // ファイルが存在するか
trace("ショートカットか : " + select.isSymbolicLink); // ショートカット(シンボリックリンク)であるか
};
// 1つのファイルを開くためのダイアログを表示する(非同期)
file.browseForOpen("ファイルを開く");
■File クラスの静的なプロパティ
File クラスから、静的に取得できるプロパティです。
プロパティ名 | 型 | 説明 |
lineEnding | String | OS の行終了文字 |
separator | String | OS のコンポーネントの区切り文字 |
systemCharset | String | OS のデフォルトのエンコーディング |
ファイルの情報を取得する
import flash.filesystem.File;
trace("OS の行終了文字 : " + File.lineEnding); // OS の行終了文字
trace("OS のコンポーネントの区切り文字 : " + File.separator); // OS のコンポーネントの区切り文字
trace("OS のデフォルトのエンコーディング : " + File.systemCharset); // OS のデフォルトのエンコーディング
さまざまなディレクトリパスを取得する
サンプルをダウンロード
■特定のディレクトリを取得する
File クラスから、静的に取得できるプロパティです。
プロパティ名 | 型 | 説明 |
File. | File | 実行ファイルが格納されているディレクトリ(インストールされているディレクトリ)を取得する。 |
File. | File | 記憶領域ディレクトリを取得する。 |
File. | File | デスクトップのディレクトリを取得する。 |
File. | File | マイドキュメントのディレクトリを取得する。 |
File. | File | ユーザーディレクトリを取得する。 |
ディレクトリの情報を取得する
import flash.filesystem.File;
// 実行ファイルが格納されているディレクトリ(インストールされているディレクトリ)を取得する
var app_dir:File = File.applicationDirectory;
trace("実行ディレクトリ : " + app_dir.nativePath);
// 記憶領域ディレクトリを取得する
var app_storage_dir:File = File.applicationStorageDirectory;
trace("記憶領域ディレクトリ : " + app_storage_dir.nativePath);
// デスクトップのディレクトリを取得する
var desktop_dir:File = File.desktopDirectory;
trace("デスクトップ : " + desktop_dir.nativePath);
// マイドキュメントのディレクトリを取得する
var document_dir:File = File.documentsDirectory;
trace("マイドキュメント : " + document_dir.nativePath);
// ユーザーディレクトリを取得する
var user_dir:File = File.userDirectory;
trace("ユーザーディレクトリ : " + user_dir.nativePath);
■File.applicationDirectory について
実行ファイルが格納されているディレクトリ(インストールされているディレクトリ)にアクセスする事ができます。
インストーラ作成時に含めておいた、ファイルが格納されています。
基本的には、読み取り専用のディレクトリとして使用します。
このディレクトリ内を変更したり、書き込みアクセスする事はできません。
■File.applicationStorageDirectory について
アプリケーションに関するデータの、永続的な保存場所として使用します。
アプリケーションやユーザーごとに、ユニーク(唯一)な場所が割り当てられます。
プラットフォームによっては、アプリケーションをアンインストールした時に、中身が削除される場合があります。
詳しい仕様は、公式リファレンスが参考になります。
http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html#applicationStorageDirectory
■すべてのルートディレクトリを取得する
ルートディレクトリを取得する
import flash.filesystem.File;
// すべてのルートディレクトリを取得する
var root_directries : Array = File.getRootDirectories();
// 配列の中身を列挙
var i:int;
for(i=0;i < root_directries.length;i++){
var root_directroy : File = root_directries[i];
trace("ルートディレクトリ : " + root_directroy.nativePath);
}
■1つ上のディレクトリを取得する
現在のディレクトリから 1 つ上のフォルダを調べるには、parent プロパティを使用します。
File オブジェクトを取得することができます。
1 つ上のフォルダを取得する
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT,FileBrowseForDirectorySelectFunc);
function FileBrowseForDirectorySelectFunc(e:Event):void {
// 選択したフォルダ
var select : File = e.target as File;
// 選択したフォルダから 1 つ上のフォルダ
var parent_dir : File = select.parent;
trace("1つ上のパス : " + parent_dir.nativePath);
};
// フォルダを選択するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
■ディレクトリ内にあるファイルやフォルダをまとめて取得する(同期実行)
このメソッドは、同期実行です。呼び出してからフォルダ内の調査が完了するまでの間、制御が返りません。
その間は、画面も更新されません。
フォルダ内のファイルを列挙する(同期)
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT,FileBrowseForDirectorySelectFunc);
function FileBrowseForDirectorySelectFunc(e:Event):void {
// 選択したディレクトリ
var select : File = e.target as File;
// フォルダ内のすべてのファイルとフォルダを取得
var files : Array = select.getDirectoryListing();
// 配列の中身を列挙
var i:int;
for(i=0;i < files.length;i++){
var file : File = files[i];
trace(file.nativePath);
}
};
// ファイルを保存するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
フォルダ内のファイルを再帰的に列挙する(非推奨)(同期)
import flash.filesystem.File;
import flash.events.Event;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT,FileBrowseForDirectorySelectFunc);
function FileBrowseForDirectorySelectFunc(e:Event):void {
// 選択したディレクトリ
var select : File = e.target as File;
// 再帰的にすべてのファイルとフォルダを調べる
FileFindFiles(select);
};
// ファイルを保存するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
// ------------------------------------------------------------
// 再帰的にすべてのファイルとフォルダを調べる関数
// ------------------------------------------------------------
function FileFindFiles(file:File):void {
// フォルダ内のすべてのファイルとフォルダを取得
var files : Array = file.getDirectoryListing();
var i:int;
for(i=0;i < files.length;i++){
var f:File = files[i];
// ディレクトリである
if (f.isDirectory) {
// 再帰実行
FileFindFiles(f);
}
trace(f.nativePath);
}
}
■ディレクトリ内にあるファイルやフォルダをまとめて取得する(非同期実行)
すべてのファイルとフォルダを再帰的に調べたい場合は、こちらがオススメです。
フォルダ内のファイルをすべて列挙する(非同期)
import flash.filesystem.File;
import flash.events.Event;
import flash.events.FileListEvent;
import flash.events.IOErrorEvent;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT , FileBrowseForDirectorySelectFunc);
function FileBrowseForDirectorySelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
// フォルダ内の調査が終了した時に呼ばれる関数
select.addEventListener(FileListEvent.DIRECTORY_LISTING , DirectoryGetListAsyncFunc);
function DirectoryGetListAsyncFunc(event:FileListEvent):void {
// フォルダ内のすべてのファイルとフォルダ
var files:Array = event.files;
// 配列の中身を列挙
var i:int;
for (i=0;i < files.length;i++) {
var f:File = files[i];
// ファイルのパスを取得
trace(f.nativePath);
}
}
// 入出力エラー時に呼ばれる関数
select.addEventListener(IOErrorEvent.IO_ERROR , DirectoryGetListAsyncIOErrorFunc );
function DirectoryGetListAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// フォルダ内のすべてのファイルとフォルダを取得(非同期)
select.getDirectoryListingAsync();
};
// ファイルを保存するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
再帰的にフォルダ内のファイルをすべて列挙する(非同期)
import flash.filesystem.File;
import flash.events.Event;
import flash.events.FileListEvent;
import flash.events.IOErrorEvent;
// ファイルオブジェクトを作成する
var file:File = new File();
// 選択された時に呼び出されるイベント
file.addEventListener(Event.SELECT , FileBrowseForDirectorySelectFunc);
function FileBrowseForDirectorySelectFunc(e:Event):void {
// 選択したファイル
var select : File = e.target as File;
// 再帰的にすべてのファイルとフォルダを調べる(非同期)
FileFindFilesAsync(select);
};
// ファイルを保存するためのダイアログを表示する(非同期)
file.browseForDirectory("ディレクトリを選択");
// ------------------------------------------------------------
// 再帰的にすべてのファイルとフォルダを調べる関数(非同期)
// ------------------------------------------------------------
function FileFindFilesAsync(file:File):void {
// フォルダ内の調査が終了した時に呼ばれる関数
file.addEventListener(FileListEvent.DIRECTORY_LISTING , DirectoryGetListAsyncFunc);
function DirectoryGetListAsyncFunc(event:FileListEvent):void {
// フォルダ内のすべてのファイルとフォルダ
var files:Array = event.files;
// 配列の中身を列挙
var i:int;
for (i=0;i < files.length;i++) {
var f:File = files[i];
// ファイルのパスを取得
trace(f.nativePath);
// ディレクトリである
if (f.isDirectory) {
// 再帰実行
FileFindFilesAsync(f);
}
}
}
// 入出力エラー時に呼ばれる関数
file.addEventListener(IOErrorEvent.IO_ERROR , DirectoryGetListAsyncIOErrorFunc );
function DirectoryGetListAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// フォルダ内のすべてのファイルとフォルダを取得(非同期)
file.getDirectoryListingAsync();
}
ファイルやフォルダを作成する
■新規にファイルを作成したい場所を決める
新規にファイルを作成したい場所を指定した、File オブジェクトを用意します。
File オブジェクトの生成方法は、こちらで解説しています。
まだ存在しないファイルパスを指定することになります。
File オブジェクトを作成する
import flash.filesystem.File;
// Cドライブ直下の "test.txt" ファイルを指定して、ファイルオブジェクトを作成する。(Windows の場合)
var file : File = new File("C:\\test.txt");
「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成
import flash.filesystem.File;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var file : File = desktop_dir.resolvePath("test.txt");
■新規にファイルを作成する
新規に作成したいファイルパスまでにフォルダが存在しない場合は、自動的にフォルダが生成されます。
デスクトップに test.txt ファイルを作成 (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var file : File = desktop_dir.resolvePath("test.txt");
// 文字列を書き込む
var stream : FileStream = new FileStream();
stream.open (file, FileMode.WRITE);
stream.writeUTFBytes("保存テスト");
stream.close();
■新規にディレクトリを作成する
新規にフォルダを作成するには、createDirectory() メソッドを使用します。
新規に作成したいディレクトリパスまでにフォルダが存在しない場合は、自動的にフォルダが生成されます。
デスクトップに test フォルダを作成 (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test" を指定して、新規に File オブジェクトを作成する
var file : File = desktop_dir.resolvePath("test");
// フォルダを作成する
file.createDirectory();
■一時的な作業用ファイルを作成する
一時的な作業用ファイルを作成するには、File.createTempFile() メソッドを使用します。
戻り値から、File オブジェクトが得られます。
一時的な作業用ファイルを作成する (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// 一時的な作業用ファイルを作成する
var file : File = File.createTempFile();
trace(file.nativePath);
// ファイルを削除する
//file.deleteFile();
■一時的な作業用ディレクトリを作成する
一時的な作業用ディレクトリを作成するには、File.createTempDirectory() メソッドを使用します。
戻り値から、File オブジェクトが得られます。
一時的な作業用ディレクトリを作成する (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// 一時的な作業用フォルダを作成する
var file : File = File.createTempDirectory();
trace(file.nativePath);
// フォルダを削除する
//file.deleteDirectory(true);
ファイルやフォルダを移動する
■移動元と移動先の2つのファイルオブジェクトを用意する
「移動元のファイルの場所を指定した File オブジェクト」
「移動先のファイルの場所を指定した File オブジェクト」
の2つを用意します。
File オブジェクトの生成方法は、こちらで解説しています。
移動元にファイルを指定した場合は、ファイルの移動となります。
移動元にディレクトリを指定した場合は、ディレクトリの移動となります。
リネームも、ファイル移動の処理で行います。
File オブジェクトを作成する
import flash.filesystem.File;
// Cドライブ直下の "test.txt" ファイルを指定して、ファイルオブジェクトを作成する。(Windows の場合)
var file : File = new File("C:\\test.txt");
「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成
import flash.filesystem.File;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var file : File = desktop_dir.resolvePath("test.txt");
■ファイルやフォルダを移動する(同期実行)
moveTo() メソッドを使用すると、ファイルやフォルダを移動する事ができます。
移動元のファイルオブジェクトから呼び出します。
このメソッドは、同期実行です。
呼び出してから、ファイルやフォルダ内の移動が完了するまでの間、制御が返りません。
対象のファイルが開かれている場合や、存在しない場合、エラーとなります。
File.moveTo ( 移動先 FileReference , [上書き移動を許可するか]) :void
第01引数 | FileReference | 移動先を FileReference 型で指定 |
第02引数(略可) | Boolean | 上書き移動を許可する場合 true 、上書き移動時にエラーとしたい場合は false |
戻り値 | void | なし |
デスクトップに test.txt ファイルを移動 (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// ------------------------------------------------------------
// 移動元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業用ファイルを作成する
var source_file : File = File.createTempFile();
// ------------------------------------------------------------
// 移動後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var move_file : File = desktop_dir.resolvePath("test.txt");
// ------------------------------------------------------------
// ファイルの移動
// ------------------------------------------------------------
try {
// ファイルを移動する
source_file.moveTo(move_file, true);
trace("移動が完了しました");
}catch (error:Error){
trace("エラー");
}
デスクトップに test フォルダを移動 (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// ------------------------------------------------------------
// 移動元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業フォルダを作成する
var source_dir : File = File.createTempDirectory();
// ------------------------------------------------------------
// 移動後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test" を指定して、新規に File オブジェクトを作成する
var move_dir : File = desktop_dir.resolvePath("test");
// ------------------------------------------------------------
// フォルダの移動
// ------------------------------------------------------------
try {
// フォルダを移動する
source_dir.moveTo(move_dir , true);
trace("移動が完了しました");
}catch (error:Error){
trace("エラー");
}
■ファイルやフォルダを移動する(非同期実行)
moveToAsync() メソッドを使用すると、ファイルやフォルダを移動する事ができます。
移動元のファイルオブジェクトから呼び出します。
このメソッドは非同期実行です。
ファイルやフォルダの移動中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
File.moveToAsync ( 移動先 FileReference , [上書き移動を許可するか]) :void
第01引数 | FileReference | 移動先を FileReference 型で指定 |
第02引数(略可) | Boolean | 上書き移動を許可する場合 true 、上書き移動時にエラーとしたい場合は false |
戻り値 | void | なし |
デスクトップに test.txt ファイルを移動(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// ------------------------------------------------------------
// 移動元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業用ファイルを作成する
var source_file : File = File.createTempFile();
// ------------------------------------------------------------
// 移動後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var move_file : File = desktop_dir.resolvePath("test.txt");
// ------------------------------------------------------------
// フォルダの移動
// ------------------------------------------------------------
// 移動終了時に呼ばれるイベント
source_file.addEventListener(Event.COMPLETE, FileMoveToAsyncCompleteFunc );
function FileMoveToAsyncCompleteFunc(event:Event): void{
trace("移動が終了しました");
}
// 入出力エラー時に呼ばれるイベント
source_file.addEventListener(IOErrorEvent.IO_ERROR, FileMoveToAsyncIOErrorFunc );
function FileMoveToAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// ファイルを移動する(非同期)
source_file.moveToAsync(move_file, true);
デスクトップに test フォルダを移動(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// ------------------------------------------------------------
// 移動元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業フォルダを作成する
var source_dir : File = File.createTempDirectory();
// ------------------------------------------------------------
// 移動後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test" を指定して、新規に File オブジェクトを作成する
var move_dir : File = desktop_dir.resolvePath("test");
// ------------------------------------------------------------
// フォルダの移動
// ------------------------------------------------------------
// 移動終了時に呼ばれるイベント
source_file.addEventListener(Event.COMPLETE, FileMoveToAsyncCompleteFunc );
function FileMoveToAsyncCompleteFunc(event:Event): void{
trace("移動が終了しました");
}
// 入出力エラー時に呼ばれるイベント
source_file.addEventListener(IOErrorEvent.IO_ERROR, FileMoveToAsyncIOErrorFunc );
function FileMoveToAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// フォルダを移動する(非同期)
source_dir.moveToAsync(move_dir, true);
ファイルやフォルダをコピーする
■コピー元とコピー先の2つのファイルオブジェクトを用意する
「コピー元のファイルの場所を指定した File オブジェクト」
「コピー先のファイルの場所を指定した File オブジェクト」
の2つを用意します。
File オブジェクトの生成方法は、こちらで解説しています。
コピー元にファイルを指定した場合は、ファイルのコピーとなります。
コピー元にディレクトリを指定した場合は、ディレクトリのコピーとなります。
File オブジェクトを作成する
import flash.filesystem.File;
// Cドライブ直下の "test.txt" ファイルを指定して、ファイルオブジェクトを作成する。(Windows の場合)
var file : File = new File("C:\\test.txt");
「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成
import flash.filesystem.File;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var file : File = desktop_dir.resolvePath("test.txt");
■ファイルやフォルダをコピーする(同期実行)
copyTo() メソッドを使用すると、ファイルやフォルダをコピーする事ができます。
コピー元のファイルオブジェクトから呼び出します。
このメソッドは、同期実行です。
呼び出してから、ファイルやフォルダ内のコピーが完了するまでの間、制御が返りません。
対象のファイルが開かれている場合や、存在しない場合、エラーとなります。
File.copyTo ( コピー先 FileReference , [上書きコピーを許可するか]) :void
第01引数 | FileReference | コピー先を FileReference 型で指定 |
第02引数(略可) | Boolean | 上書きコピーを許可する場合 true 、上書きコピー時にエラーとしたい場合は false |
戻り値 | void | なし |
デスクトップに test.txt ファイルをコピー (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// ------------------------------------------------------------
// コピー元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業用ファイルを作成する
var source_file : File = File.createTempFile();
// ------------------------------------------------------------
// コピー後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var copy_file : File = desktop_dir.resolvePath("test.txt");
// ------------------------------------------------------------
// ファイルのコピー
// ------------------------------------------------------------
try {
// ファイルをコピーする
source_file.copyTo(copy_file, true);
trace("コピーが完了しました");
}catch (error:Error){
trace("エラー");
}
デスクトップに test フォルダをコピー (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// ------------------------------------------------------------
// コピー元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業フォルダを作成する
var source_dir : File = File.createTempDirectory();
// ------------------------------------------------------------
// コピー後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test" を指定して、新規に File オブジェクトを作成する
var copy_dir : File = desktop_dir.resolvePath("test");
// ------------------------------------------------------------
// フォルダのコピー
// ------------------------------------------------------------
try {
// フォルダをコピーする
source_dir.copyTo(copy_dir , true);
trace("コピーが完了しました");
}catch (error:Error){
trace("エラー");
}
■ファイルやフォルダをコピーする(非同期実行)
copyToAsync() メソッドを使用すると、ファイルやフォルダをコピーする事ができます。
コピー元のファイルオブジェクトから呼び出します。
このメソッドは非同期実行です。
ファイルやフォルダのコピー中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
File.copyToAsync ( コピー先 FileReference , [上書きコピーを許可するか]) :void
第01引数 | FileReference | コピー先を FileReference 型で指定 |
第02引数(略可) | Boolean | 上書きコピーを許可する場合 true 、上書きコピー時にエラーとしたい場合は false |
戻り値 | void | なし |
デスクトップに test.txt ファイルをコピー(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// ------------------------------------------------------------
// コピー元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業用ファイルを作成する
var source_file : File = File.createTempFile();
// ------------------------------------------------------------
// コピー後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var copy_file : File = desktop_dir.resolvePath("test.txt");
// ------------------------------------------------------------
// フォルダのコピー
// ------------------------------------------------------------
// コピー終了時に呼ばれるイベント
source_file.addEventListener(Event.COMPLETE, FileCopyToAsyncCompleteFunc );
function FileCopyToAsyncCompleteFunc(event:Event): void{
trace("コピーが終了しました");
}
// 入出力エラー時に呼ばれるイベント
source_file.addEventListener(IOErrorEvent.IO_ERROR, FileCopyToAsyncIOErrorFunc );
function FileCopyToAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// ファイルをコピーする(非同期)
source_file.copyToAsync(copy_file, true);
デスクトップに test フォルダをコピー(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// ------------------------------------------------------------
// コピー元のファイルオブジェクト
// ------------------------------------------------------------
// 一時的な作業フォルダを作成する
var source_dir : File = File.createTempDirectory();
// ------------------------------------------------------------
// コピー後のファイルオブジェクト
// ------------------------------------------------------------
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test" を指定して、新規に File オブジェクトを作成する
var copy_dir : File = desktop_dir.resolvePath("test");
// ------------------------------------------------------------
// フォルダのコピー
// ------------------------------------------------------------
// コピー終了時に呼ばれるイベント
source_file.addEventListener(Event.COMPLETE, FileCopyToAsyncCompleteFunc );
function FileCopyToAsyncCompleteFunc(event:Event): void{
trace("コピーが終了しました");
}
// 入出力エラー時に呼ばれるイベント
source_file.addEventListener(IOErrorEvent.IO_ERROR, FileCopyToAsyncIOErrorFunc );
function FileCopyToAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// フォルダをコピーする(非同期)
source_dir.copyToAsync(copy_dir, true);
ファイルやフォルダを削除する
■削除したいファイルオブジェクトを用意する
削除したいファイルやフォルダの場所を指定した、File オブジェクトを用意します。
File オブジェクトの生成方法は、こちらで解説しています。
File オブジェクトを作成する
import flash.filesystem.File;
// Cドライブ直下の "test.txt" ファイルを指定して、ファイルオブジェクトを作成する。(Windows の場合)
var file : File = new File("C:\\test.txt");
「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成
import flash.filesystem.File;
// デスクトップのディレクトリを取得する
var desktop_dir : File = File.desktopDirectory;
// 「デスクトップのディレクトリ」を基点として、相対パス "test.txt" を指定して、新規に File オブジェクトを作成する
var file : File = desktop_dir.resolvePath("test.txt");
■ファイルオブジェクトの中身がディレクトリであるか調べる
ファイルオブジェクトの中身が、ディレクトリであるか調べるには、isDirectory プロパティを使用します。
true であれば、フォルダです。
false であれば、ファイルです。
■ファイルを削除する(同期実行)
deleteFile() メソッドを使用すると、ファイルを削除する事ができます。
このメソッドは、同期実行です。
呼び出してから、ファイルの削除が完了するまでの間、制御が返りません。
対象のファイルが開かれている場合や、存在しない場合、エラーとなります。
一時的な作業用ファイルを削除する (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// 一時的な作業用ファイルを作成する
var file : File = File.createTempFile();
try {
// ファイルを削除する
file.deleteFile();
trace("ファイルの削除が完了しました");
}catch (error:Error){
trace("エラー");
}
■ファイルを削除する(非同期実行)
deleteFileAsync() メソッドを使用すると、ファイルを削除する事ができます。
このメソッドは非同期実行です。
ファイルの削除中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
一時的な作業用ファイルを削除する(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// 一時的な作業用ファイルを作成する
var file : File = File.createTempFile();
// ファイルの削除完了時に呼ばれるイベント
file.addEventListener(Event.COMPLETE, FileDeleteFileAsyncCompleteFunc );
function FileDeleteFileAsyncCompleteFunc(event:Event): void{
trace("ファイルの削除が終了しました");
}
// 入出力エラー時に呼ばれるイベント
file.addEventListener(IOErrorEvent.IO_ERROR, FileDeleteFileAsyncIOErrorFunc );
function FileDeleteFileAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// ファイルを削除する(非同期)
file.deleteFileAsync();
■フォルダを削除する(同期実行)
deleteDirectory() メソッドを使用すると、フォルダを削除する事ができます。
引数に、true を指定すると、中身の有無に関係なく削除を試みます。
引数に、false を指定すると、中身がある場合エラーとなります。
このメソッドは、同期実行です。
呼び出してから、フォルダの削除が完了するまでの間、制御が返りません。
対象のファイルが開かれている場合や、存在しない場合、エラーとなります。
一時的な作業用フォルダを削除する (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// 一時的な作業用フォルダを作成する
var file : File = File.createTempDirectory();
try {
// フォルダを削除する
file.deleteDirectory();
trace("フォルダの削除が完了しました");
}catch (error:Error){
trace("エラー");
}
■フォルダを削除する(非同期実行)
このメソッドは非同期実行です。
フォルダの削除中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
Event.COMPLETE イベントを使用すると、フォルダの削除が完了した事がわかります。
一時的な作業用フォルダを削除する(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// 一時的な作業用フォルダを作成する
var file : File = File.createTempDirectory();
// フォルダの削除完了時に呼ばれるイベント
file.addEventListener(Event.COMPLETE, FileDeleteDirectoryAsyncCompleteFunc );
function FileDeleteDirectoryAsyncCompleteFunc(event:Event): void{
trace("フォルダの削除が終了しました");
}
// 入出力エラー時に呼ばれるイベント
file.addEventListener(IOErrorEvent.IO_ERROR, FileDeleteDirectoryAsyncIOErrorFunc );
function FileDeleteDirectoryAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// フォルダを削除する(非同期)
file.deleteDirectoryAsync();
■ファイルやフォルダをゴミ箱に移動する(同期実行)
moveToTrash() メソッドを使用すると、ファイルやフォルダをゴミ箱へ移動する事ができます。
このメソッドは、同期実行です。
呼び出してから、ゴミ箱への移動が完了するまでの間、制御が返りません。
対象のファイルが開かれている場合や、存在しない場合、エラーとなります。
一時的な作業用ファイルをゴミ箱へ移動する (注意:ファイル操作を行います!! )
import flash.filesystem.File;
// 一時的な作業用ファイルを作成する
var file : File = File.createTempFile();
try {
// ファイルをゴミ箱へ移動する
file.moveToTrash();
trace("ゴミ箱への移動が完了しました");
}catch (error:Error){
trace("エラー");
}
■ファイルやフォルダをゴミ箱にする(非同期実行)
moveToTrashAsync() メソッドを使用すると、ファイルやフォルダをゴミ箱へ移動する事ができます。
このメソッドは非同期実行です。
ゴミ箱へ移動中でもプログラムが動き続けるので、必ずイベントから実行結果を得る必要があります。
Event.COMPLETE イベントを使用すると、ゴミ箱への移動が完了した事がわかります。
一時的な作業用ファイルをゴミ箱へ移動する(非同期) (注意:ファイル操作を行います!! )
import flash.filesystem.File;
import flash.events.Event;
import flash.events.IOErrorEvent;
// 一時的な作業用ファイルを作成する
var file : File = File.createTempFile();
// ゴミ箱への移動完了時に呼ばれるイベント
file.addEventListener(Event.COMPLETE, FileDeleteFileAsyncCompleteFunc );
function FileDeleteFileAsyncCompleteFunc(event:Event): void{
trace("ゴミ箱への移動が終了しました");
}
// 入出力エラー時に呼ばれるイベント
file.addEventListener(IOErrorEvent.IO_ERROR, FileDeleteFileAsyncIOErrorFunc );
function FileDeleteFileAsyncIOErrorFunc(event:IOErrorEvent): void{
trace("入出力エラー");
}
// ファイルをゴミ箱へ移動する(非同期)
file.moveToTrashAsync();