flash.filesystemFileStream FileStream オブジェクトは、ファイルの読み取りと書き込みに使用されます。flash.utils:IDataInputflash.utils:IDataOutputflash.events:EventDispatcher FileStream オブジェクトは、ファイルの読み取りと書き込みに使用されます。ファイルは、open() メソッドを呼び出して同期的に開くことも、openAsync() メソッドを呼び出して非同期で開くこともできます。

ファイルを非同期で開くことの利点は、Adobe AIR がバックグラウンドで読み取りと書き込みの処理を実行している間に、他のコードを実行できることです。非同期で開いた場合は、処理が進むにつれて progress イベントが送出されます。

同期的に開いた File オブジェクトは ByteArray オブジェクトと同じように動作し、非同期で開いたファイルは Socket または URLStream オブジェクトと同じように動作します。File オブジェクトを同期的に開いた場合、要求されたデータの読み取りまたは書き込みを基になるファイルに対して実行している間、呼び出し元は一時停止します。非同期で開いた場合、ストリームに書き込まれたデータは即時にバッファーに格納され、後でファイルに書き込まれます。

ファイルからの読み取りが同期的であるか非同期であるかにかかわらず、実際の読み取りメソッドは同期的です。どちらの場合も、現在 "使用可能な" データから読み取られます。違いは、同期的に読み取る場合は常にすべてのデータが使用可能であるのに対して、非同期で読み取る場合はデータストリームが読み取りバッファーに読み取られるにつれてデータが徐々に使用可能になる点です。どちらの場合も、現時点で同期的に読み取れるデータは、bytesAvailable プロパティで表されます。

一般に、非同期入力を処理するアプリケーションは progress イベントに登録し、データが使用可能になると、読み取りメソッドを呼び出してデータを処理します。アプリケーションは、complete イベントに登録して、すべてのデータが使用可能になるまで待機し、complete イベントが送出された時点でデータセット全体を処理することもできます。

complete ストリームの終わりに達したことを通知します。flash.events.Event.COMPLETEflash.events.Event ストリームの終わりに達したことを通知します。 positionoutputProgress バッファーに格納されたデータがファイルに書き込まれたことを通知します。flash.events.OutputProgressEvent.OUTPUT_PROGRESSflash.events.OutputProgressEvent バッファーに格納されたデータがファイルに書き込まれたことを通知します。 progress ストリーム上で新しいデータが使用可能になったことを通知します。flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent ストリーム上で新しいデータが使用可能になったことを通知します。 ioError 非同期のファイル I/O 処理中にエラーが発生したことを示します。flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent 非同期のファイル I/O 処理中にエラーが発生したことを示します。 close close() メソッドの明示的な呼び出しによってストリームが閉じられたことを示します。flash.events.Event.CLOSEflash.events.Event close() メソッドの明示的な呼び出しによってストリームが閉じられたことを示します。 close()FileStream FileStream オブジェクトを作成します。 FileStream オブジェクトを作成します。ファイルを開くには、open() メソッドまたは openAsync() メソッドを使用します。 open()openAsync()close FileStream オブジェクトを閉じます。 FileStream オブジェクトを閉じます。

close() メソッドを呼び出した後は、データの読み取りや書き込みを行うことはできません。ファイルを非同期で開いた(FileStream オブジェクトが openAsync() メソッドを使用してファイルを開いた)場合は、close() メソッドを呼び出すと、close イベントが送出されます。

アプリケーションを閉じると、アプリケーションの FileStream オブジェクトに関連付けられているすべてのファイルが自動的に閉じられます。ただし、アプリケーションを閉じる前に、非同期で開いた、書き込み保留中のデータのあるすべての FileStream オブジェクトについて closed イベントに登録することをお勧めします(これにより、データが確実に書き込まれます)。

FileStream オブジェクトを再利用するには、open() メソッドまたは openAsync() メソッドを呼び出します。これにより、FileStream オブジェクトに関連付けられたすべてのファイルが閉じられますが、このオブジェクトの close イベントは送出されません。

openAsync() メソッドを使用して)非同期で開いた FileStream オブジェクトについては、その FileStream オブジェクトの close() イベントを呼び出し、そのオブジェクトを参照しているプロパティおよび変数を削除したとしても、保留中の処理があり、その完了のためのイベントハンドラーが登録されている場合は FileStream はガベージコレクションの対象になりません。つまり、参照されていない FileStream オブジェクトであっても、次のいずれかの可能性がある限りは存在し続けます。

  • ファイルの読み取り処理で、ファイルの末尾に達していない(complete イベントが送出されていない)。
  • 書き込み用の出力データがまだ存在し、出力関連のイベント(outputProgress イベント、ioError イベントなど)がイベントリスナーを登録している。
次のコードでは、FileStream を非同期で開き、ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリにある test.txt という名前のテキストファイルに書き込みます。データが書き込まれたら、FileStream オブジェクトの close() メソッドを呼び出してファイルを閉じます。 import flash.filesystem.*; import flash.events.Event; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.openAsync(file, FileMode.WRITE); fileStream.writeUTFBytes("Hello"); fileStream.addEventListener(Event.CLOSE, fileClosed); fileStream.close(); function fileClosed(event:Event):void { trace("closed"); } 次のコードでは、FileStream を同期的に開き、ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリにある test.txt という名前のテキストファイルに書き込みます。データが書き込まれたら、FileStream オブジェクトの close() メソッドを呼び出してファイルを閉じます。 import flash.filesystem.*; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeUTF("Hello"); fileStream.close();
open()close イベントcloseflash.events:Event非同期で開かれたファイルが閉じられました。 非同期で開かれたファイルが閉じられました。
openAsync file パラメーターで指定されたファイルを読み込み元として、FileStream オブジェクトを非同期的に開きます。ファイルがアプリケーションディレクトリ内にあり、fileMode パラメーターが「append」、「update」または「write」の各モードに設定されています。 SecurityErrorSecurityErrorfileflash.filesystem:File開くファイルを表す File オブジェクトです。 fileModeStringFileMode クラスのストリングであり、FileStream の機能(ファイルからの読み取り、ファイルへの書き込みなど)を定義するものです。 file パラメーターで指定されたファイルを読み込み元として、FileStream オブジェクトを非同期的に開きます。

FileStream オブジェクトが既に開いている場合、このメソッドを呼び出すと、ファイルは、いったん閉じてから開かれます。前に開かれていたファイルに対する追加のイベント(close を含む)は送出されません。

fileMode パラメーターが FileMode.READ または FileMode.UPDATE に設定されている場合、ファイルが開かれるとすぐに入力バッファーへのデータの読み取りが開始され、この読み取り処理中に progress イベントおよび open イベントが送出されます。

ファイルのロックをサポートするシステムでは、"書き込み" モードまたは "更新" モード(FileMode.WRITE または FileMode.UPDATE)で開かれたファイルは、そのファイルが閉じられない限り、読み取り可能になりません。

ファイルに対する操作を実行し終えたら、FileStream オブジェクトの close() メソッドを呼び出します。オペレーティングシステムによっては、並行して開いておけるファイルの数に制限があります。

`
次のコードは、ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリにある test.txt というファイルを非同期的に開き、テキストのエンコーディングとしてシステムの文字セットを使用してファイルをストリングに読み取る方法を示しています。 import flash.filesystem.*; import flash.events.Event; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.addEventListener(Event.COMPLETE, fileCompleteHandler) fileStream.openAsync(file, FileMode.READ); function fileCompleteHandler(event:Event):void { var str:String = fileStream.readMultiByte(fileStream.bytesAvailable, File.systemCharset); trace(str); fileStream.close(); }
close()complete イベントioError イベントprogress イベントFileModeioErrorflash.events:IOErrorEventファイルが存在しないか、ファイルを開くために必要なアクセス権を持っていないか、読み取りアクセスのためにファイルを開こうとしているが読み取りアクセス権を持っていないか、または書き込みアクセスのためにファイルを開こうとしているが書き込みアクセス権を持っていません。 ファイルが存在しないか、ファイルを開くために必要なアクセス権を持っていないか、読み取りアクセスのためにファイルを開こうとしているが読み取りアクセス権を持っていないか、または書き込みアクセスのためにファイルを開こうとしているが書き込みアクセス権を持っていません。progressflash.events:ProgressEvent入力バッファーへのデータの読み取り処理中に送出されます。(ファイルは、fileMode パラメーターを FileMode.READ または FileMode.UPDATE に設定して開く必要があります。) 入力バッファーへのデータの読み取り処理中に送出されます。completeflash.events:Event入力バッファーへのファイルデータの読み取りが完了しました。(ファイルは、fileMode パラメーターを FileMode.READ または FileMode.UPDATE に設定して開く必要があります。) 入力バッファーへのファイルデータの読み取りが完了しました。
open file パラメーターで指定されたファイルを読み込み元として、FileStream オブジェクトを同期的に開きます。ファイルが存在しないか、ファイルを開くために必要なアクセス権を持っていないか、読み取りアクセスのためにファイルを開こうとしているが読み取りアクセス権を持っていないか、または書き込みアクセスのためにファイルを開こうとしているが書き込みアクセス権を持っていません。 IOErrorflash.errors:IOErrorファイルがアプリケーションディレクトリ内にあり、fileMode パラメーターが「append」、「update」または「write」の各モードに設定されています。 SecurityErrorSecurityErrorfileflash.filesystem:File開くファイルを表す File オブジェクトです。 fileModeStringFileMode クラスのストリングであり、FileStream の機能(ファイルからの読み取り、ファイルへの書き込みなど)を定義するものです。 file パラメーターで指定されたファイルを読み込み元として、FileStream オブジェクトを同期的に開きます。

FileStream オブジェクトが既に開いている場合、このメソッドを呼び出すと、ファイルは、いったん閉じてから開かれます。前に開かれていたファイルに対する追加のイベント(close を含む)は送出されません。

ファイルのロックをサポートするシステムでは、"書き込み" モードまたは "更新" モード(FileMode.WRITE または FileMode.UPDATE)で開かれたファイルは、そのファイルが閉じられない限り、読み取り可能になりません。

ファイルに対する操作を実行し終えたら、FileStream オブジェクトの close() メソッドを呼び出します。オペレーティングシステムによっては、並行して開いておけるファイルの数に制限があります。

次のコードは、ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリにある test.txt というファイルを同期的に開き、テキストのエンコーディングとしてシステムの文字セットを使用してファイルをストリングに読み取る方法を示しています。 import flash.filesystem.*; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.READ); var str:String = fileStream.readMultiByte(file.size, File.systemCharset); trace(str); fileStream.close();
close()FileFileMode
readBoolean ファイルストリーム、バイトストリームまたはバイト配列からブール値を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFErrorバイトがゼロ以外の場合は true、それ以外の場合は false のブール値が返されます。 Boolean ファイルストリーム、バイトストリームまたはバイト配列からブール値を読み取ります。 1 バイトが読み取られ、バイトがゼロ以外の場合は true、それ以外の場合は false が返されます。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readByte ファイルストリーム、バイトストリームまたはバイト配列から符号付きバイトを読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError戻り値は -128 ~ 127 の範囲です。 int ファイルストリーム、バイトストリームまたはバイト配列から符号付きバイトを読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readBytes ファイルストリーム、バイトストリームまたはバイト配列から、length パラメーターで指定したデータバイト数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFErrorbytesflash.utils:ByteArrayデータの読み込み先の ByteArray オブジェクトです。 offsetuint0データの読み取りを開始する bytes パラメーターへのオフセットです。 lengthuint0読み取るバイト数です。デフォルト値の 0 に設定すると、すべてのデータが読み取られます。 ファイルストリーム、バイトストリームまたはバイト配列から、length パラメーターで指定したデータバイト数を読み取ります。 このバイトは、bytes パラメーターで指定した ByteArray オブジェクトの、offset で指定された位置以降に読み込まれます。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readDouble ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 倍精度浮動小数点数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFErrorIEEE 754 倍精度浮動小数点数です。 Number ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 倍精度浮動小数点数を読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readFloat ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 単精度浮動小数点数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFErrorIEEE 754 単精度浮動小数点数です。 Number ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 単精度浮動小数点数を読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readInt ファイルストリーム、バイトストリームまたはバイト配列から符号付き 32 ビット整数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError戻り値は -2147483648 ~ 2147483647 の範囲です。 int ファイルストリーム、バイトストリームまたはバイト配列から符号付き 32 ビット整数を読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readMultiByte 指定した文字セットを使用して、ファイルストリーム、バイトストリームまたはバイト配列から指定した長さのマルチバイトストリングを読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFErrorUTF-8 エンコードされたストリングです。 Stringlengthuintバイトストリームから読み取るバイト数です。 charSetStringバイトの解釈に使用する文字セットを表すストリングです。文字セットのストリングには、"shift-jis""cn-gb"、および "iso-8859-1" などがあります。完全な一覧については、「サポートされている文字セット」を参照してください。

注意:charSet パラメーターの値が現在のシステムで認識されない場合、Adobe® Flash® Player または Adobe® AIR® は、システムのデフォルトコードページを文字セットとして使用します。 例えば、charSet パラメーターの指定で myTest.readMultiByte(22, "iso-8859-01") のように 011 の代わりに使用した場合、その文字セットパラメーターは開発システムでは認識されるかもしれませんが、別のシステムでは認識されない可能性があります。もう一方のシステムでは、Flash Player または AIR ランタイムがシステムのデフォルトコードページを使用することになります。

指定した文字セットを使用して、ファイルストリーム、バイトストリームまたはバイト配列から指定した長さのマルチバイトストリングを読み取ります。
File.systemCharsetioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。
readObject ファイルストリーム、バイトストリームまたはバイト配列から、AMF 直列化形式でエンコードされたオブジェクトを読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError非直列化されたオブジェクトです。 ファイルストリーム、バイトストリームまたはバイト配列から、AMF 直列化形式でエンコードされたオブジェクトを読み取ります。 flash.net.registerClassAlias()ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readShort ファイルストリーム、バイトストリームまたはバイト配列から符号付き 16 ビット整数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError戻り値は -32768 ~ 32767 の範囲です。 int ファイルストリーム、バイトストリームまたはバイト配列から符号付き 16 ビット整数を読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readUTFBytes バイトストリームまたはバイト配列から UTF-8 の バイトのシーケンスを読み取り、ストリングを返します。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError指定した長さの文字のバイト表現で作成された UTF-8 ストリングです。 Stringlengthuint読み取るバイト数です。 バイトストリームまたはバイト配列から UTF-8 の バイトのシーケンスを読み取り、ストリングを返します。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readUTF ファイルストリーム、バイトストリームまたはバイト配列から UTF-8 ストリングを読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError文字のバイト表現で作成された UTF-8 ストリングです。 String ファイルストリーム、バイトストリームまたはバイト配列から UTF-8 ストリングを読み取ります。 このストリングには、バイト単位の長さを示す符号なし short が前に付いているものと見なされます。

このメソッドは、Java® IDataInput インターフェイスの readUTF() メソッドによく似ています。

ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。
readUnsignedByte ファイルストリーム、バイトストリームまたはバイト配列から符号なしバイトを読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError戻り値は 0 ~ 255 の範囲です。 uint ファイルストリーム、バイトストリームまたはバイト配列から符号なしバイトを読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readUnsignedInt ファイルストリーム、バイトストリームまたはバイト配列から符号なし 32 ビット整数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError戻り値は 0 ~ 4294967295 の範囲です。 uint ファイルストリーム、バイトストリームまたはバイト配列から符号なし 32 ビット整数を読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。readUnsignedShort ファイルストリーム、バイトストリームまたはバイト配列から符号なし 16 ビット整数を読み取ります。ファイルが開かれていないか、ファイルが開かれたが読み取り機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルを読み取ることができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorデータの読み取りのために指定された位置が、(bytesAvailable プロパティで指定された) 使用可能なバイト数を超えています。 EOFErrorflash.errors:EOFError戻り値は 0 ~ 65535 の範囲です。 uint ファイルストリーム、バイトストリームまたはバイト配列から符号なし 16 ビット整数を読み取ります。 ioErrorflash.events:IOErrorEventファイルを読み取ることができないか、またはファイルが開かれていません。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルを読み取ることができないか、またはファイルが開かれていません。truncate FileStream オブジェクトの position プロパティで指定された位置でファイルを切り捨てます。ファイルは書き込み用に開かれていません。 IllegalOperationErrorflash.errors:IllegalOperationError FileStream オブジェクトの position プロパティで指定された位置でファイルを切り捨てます。

position プロパティで指定された位置からファイルの末尾までのバイトが削除されます。ファイルは書き込み用に開かれている必要があります。

次のコードでは、ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリにある test.txt というファイルを同期的に開き、ファイルの長さが 100 文字を超える場合は 100 文字に切り詰めます。 import flash.filesystem.*; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.UPDATE); if (file.size > 100) { fileStream.position = 100; fileStream.truncate(); } fileStream.close(); 次のコードでは、ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリにある test.txt というファイルを非同期的に開き、ファイルの長さが 100 文字を超える場合は 100 文字に切り詰めます。 var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.openAsync(file, FileMode.UPDATE); trace("start", file.size) if (file.size > 100) { fileStream.position = 100; fileStream.truncate(); } fileStream.addEventListener(Event.CLOSE, fileClosed); fileStream.close(); function fileClosed(event:Event):void { trace("closed", file.size); }
position
writeBoolean ブール値を書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueBoolean書き込むバイトを決定するブール値です。このパラメーターが true の場合は 1、false の場合は 0 が書き込まれます。 ブール値を書き込みます。value パラメーターに従って、1 バイトが書き込まれます。true の場合は 1、false の場合は 0 のいずれかが書き込まれます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeByte バイトを書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueint整数としてのバイト値です。 バイトを書き込みます。パラメーターの下位 8 ビットが使用されます。上位 24 ビットは無視されます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeBytes 指定したバイト配列(bytes)の offset(0 から始まるインデックス値)バイトから開始される length バイトのシーケンスをファイルストリーム、バイトストリームまたはバイト配列に書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorbytesflash.utils:ByteArray書き込むバイト配列です。 offsetuint0書き込みを開始する配列の位置を指定する、0 から始まるインデックスです。 lengthuint0書き込むバッファーの長さを指定する符号なし整数です。 指定したバイト配列(bytes)の offset(0 から始まるインデックス値)バイトから開始される length バイトのシーケンスをファイルストリーム、バイトストリームまたはバイト配列に書き込みます。

length パラメーターを省略すると、デフォルトの長さの 0 が使用され、offset から開始されるバッファー全体が書き込まれます。 offset パラメーターも省略した場合は、バッファー全体が書き込まれます。

offset または length パラメーターが範囲外の場合は、これらは bytes 配列の最初と最後に固定されます。

ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。
writeDouble IEEE 754 倍精度(64 ビット)浮動小数点数を書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueNumber倍精度(64 ビット)浮動小数点数です。 IEEE 754 倍精度(64 ビット)浮動小数点数を書き込みます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeFloat IEEE 754 単精度(32 ビット)浮動小数点数を書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueNumber単精度(32 ビット)浮動小数点数です。 IEEE 754 単精度(32 ビット)浮動小数点数を書き込みます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeInt 32 ビット符号付き整数を書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueint符号付き整数としてのバイト値です。 32 ビット符号付き整数を書き込みます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeMultiByte 指定した文字セットを使用して、ファイルストリーム、バイトストリームまたはバイト配列にマルチバイトストリングを書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueString書き込まれるストリング値です。 charSetString使用する文字セットを表すストリングです。文字セットのストリングには、"shift-jis""cn-gb"、および "iso-8859-1" などがあります。完全な一覧については、「サポートされている文字セット」を参照してください。 指定した文字セットを使用して、ファイルストリーム、バイトストリームまたはバイト配列にマルチバイトストリングを書き込みます。 File.systemCharsetioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeObject ファイルストリーム、バイトストリームまたはバイト配列に、AMF 直列化形式でオブジェクトを書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorobject直列化されるオブジェクトです。 ファイルストリーム、バイトストリームまたはバイト配列に、AMF 直列化形式でオブジェクトを書き込みます。 flash.net.registerClassAlias()ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeShort 16 ビット整数を書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueint整数としてのバイト値です。 16 ビット整数を書き込みます。パラメーターの下位 16 ビットが使用されます。上位 16 ビットは無視されます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeUTFBytes UTF-8 ストリングを書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueString書き込まれるストリング値です。 UTF-8 ストリングを書き込みます。writeUTF() と似ていますが、ストリングに 16 ビット長の接頭辞が付きません。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeUTF ファイルストリーム、バイトストリームまたはバイト配列に UTF-8 ストリングを書き込みます。ストリングの長さが 65535 よりも長い場合。 RangeErrorRangeErrorファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueString書き込まれるストリング値です。 ファイルストリーム、バイトストリームまたはバイト配列に UTF-8 ストリングを書き込みます。 最初に UTF-8 ストリングの長さがバイト単位で 16 ビット整数として書き込まれ、その後にストリングの文字を表すバイトが続きます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。writeUnsignedInt 32 ビット符号なし整数を書き込みます。ファイルが開かれていないか、ファイルが開かれたが書き込み機能を指定して開かれていなかったか、または(open() メソッドを使用して)同期処理のために開かれたファイルに書き込むことができません(例えば、ファイルがないため)。 IOErrorflash.errors:IOErrorvalueuint符号なし整数としてのバイト値です。 32 ビット符号なし整数を書き込みます。 ioErrorflash.events:IOErrorEventファイルに書き込むことができません(例えば、ファイルがないため)。このイベントは、非同期処理のために(openAsync() メソッドを使用して)開かれたファイルに対してのみ送出されます。 ファイルに書き込むことができません(例えば、ファイルがないため)。bytesAvailable 入力バッファーで読み取ることができるデータのバイト数を返します。uint 入力バッファーで読み取ることができるデータのバイト数を返します。読み取りメソッドを使用する前に、ユーザーコードで bytesAvailable を呼び出して、読み取るデータが十分にあることを確認します。 endian データのバイト順序(Endian クラスの BIG_ENDIAN 定数または LITTLE_ENDIAN 定数)です。String データのバイト順序(Endian クラスの BIG_ENDIAN 定数または LITTLE_ENDIAN 定数)です。 objectEncoding readObject() メソッドまたは writeObject() メソッドを使用してバイナリデータの書き込みまたは読み取りを行うときに AMF3 と AMF0 のどちらのフォーマットを使用するかを指定します。uint readObject() メソッドまたは writeObject() メソッドを使用してバイナリデータの書き込みまたは読み取りを行うときに AMF3 と AMF0 のどちらのフォーマットを使用するかを特定するために使用されます。

この値は、ObjectEncoding クラスの定数です。デフォルトでは、AMF3 フォーマットが使用されます。

ObjectEncodingreadObject()writeObject()
position ファイルでの現在の位置です。Number ファイルでの現在の位置です。

この値は、次のいずれかの方法で変更されます。

  • プロパティを明示的に設定したとき
  • (いずれかの読み取りメソッドを使用して) FileStream オブジェクトから読み取るとき
  • FileStream オブジェクトに書き込むとき

位置は、232 バイトを超える長さのファイルをサポートするために、(uint ではなく)Number として定義されます。このプロパティの値は、常に 253 未満の整数です。この値を小数部を持つ数値に設定した場合は、最も近い整数に切り捨てられます。

ファイルを非同期で読み取ると、position プロパティを設定した場合、アプリケーションが読み取りバッファーに指定された位置から始まるデータの埋め込みを開始し、bytesAvailable プロパティが 0 に設定される可能性があります。読み取りメソッドを使ってデータを読み取る前に complete イベントを待つか、または読み取りメソッドを使う前に progress イベントを待って bytesAvailable プロパティをチェックします。

次のコードは、ファイルからデータが読み取られると、それに応じて FileStream オブジェクトの position プロパティが更新される様子を示しています。 import flash.fileSystem.*; import flash.utils.ByteArray; import flash.events.Event; var sourceFile:File = File.documentsDirectory.resolvePath("Apollo Test/test.txt"); var stream:FileStream = new FileStream(); stream.addEventListener(Event.COMPLETE, readBytes); stream.openAsync(sourceFile, FileMode.READ); function readBytes(e:Event):void { var bytes:ByteArray = new ByteArray(); trace("position 0:", stream.position); // 0 bytes[0] = stream.readByte(); trace("position 1:", stream.position); // 1 fileStream.readBytes(bytes, stream.position, 4); trace("position 2:", stream.position); // 5 stream.close(); }
readAhead ファイルを非同期に読み取るときに、ディスクから読み取るデータの最小サイズ。Number ファイルを非同期に読み取るときに、ディスクから読み取るデータの最小サイズ。

このプロパティは、現在の位置以降、非同期ストリームで読み取るデータの量を指定します。データは、ファイルシステムのページサイズに基づいて、ブロック単位で読み取られます。そのため、ページサイズが 8 KB(8,192 バイト)のコンピューターシステムで readAhead を 9,000 に設定すると、まずランタイムで 2 ブロック(16,384 バイト)が同時に読み取られます。このプロパティのデフォルト値は無限大です。デフォルトでは、読み取りのために非同期で開かれたファイルは、ファイルの末尾に達するまで読み取られます。

読み取りバッファーからデータを読み取っても、readAhead プロパティの値は変わりません。バッファーからデータを読み取ると、読み取りバッファーの空いた部分を埋めるために新しいデータが読み取られます。

readAhead プロパティは、同期的に開かれたファイルに対しては効果がありません。

データが非同期的に読み込まれると、FileStream オブジェクトは progress イベントを送出します。progress イベントのイベントハンドラーメソッドでは、(bytesAvailable プロパティを調べて) 必要なバイト数が利用可能であるかどうかを確認し、読み取りメソッドを使用して読み取りバッファーからデータを読み取ります。

次のコードは、readAhead プロパティを使用して、ファイルに読み取るデータの量を 100 バイトに制限する方法を示しています。 import flash.filesystem.*; var file:File = File.desktopDirectory.resolvePath("test.txt"); var fileStream:FileStream = new FileStream(); fileStream.readAhead = 100; fileStream.addEventListener(ProgressEvent.PROGRESS, readProgressHandler) fileStream.openAsync(file, FileMode.READ); var results:ByteArray; function readProgressHandler(event:ProgressEvent):void { if (fileStream.bytesAvailable >= 100) { fileStream.readBytes(results, 0, 100); } }
FileMode FileMode クラスは、FileStream クラスの open() メソッドおよび openAsync() メソッドの fileMode パラメーターで使用されるストリング定数を定義します。Object FileMode クラスは、fileMode パラメーターで使用されるストリング定数を定義します。このパラメーターは、FileStream クラスの open() メソッドおよび openAsync() メソッドで指定します。これらのメソッドの fileMode パラメーターによって、ファイルが開かれたときに FileStream オブジェクトで利用できる機能が決まります。

open メソッドで指定した fileMode パラメーター値に基づいて、次の機能が、様々な組み合わせで利用できるようになります。

  • 読み取り - FileStream オブジェクトはファイルからデータを読み取ることができます。
  • 書き込み - FileStream オブジェクトはファイルにデータを書き込むことができます。
  • 作成 - オープン時にファイルが存在しなかった場合、FileStream オブジェクトはそのファイルを作成します。
  • オープン時の切り捨て - オープン時に(ファイルにデータを書き込む前に)ファイル内のデータが削除されます。
  • 書き込みデータの追加 - データは常にファイルの末尾に書き込まれます(書き込みメソッドの呼び出し時)。

FileStream オブジェクトの open メソッドの fileMode パラメーターとして使用された場合に FileMode クラスの各定数が提供する機能を次の表に示します。

FileMode の定数読み取り書き込み作成オープン時の切り捨て書き込みデータの追加READ WRITE APPEND UPDATE
FileStream.open()FileStream.openAsync()APPEND ファイルは書き込みモードで開かれるファイルについて使用され、すべての書き込みデータはファイルの末尾に追加されます。appendString ファイルは書き込みモードで開かれるファイルについて使用され、すべての書き込みデータはファイルの末尾に追加されます。オープン時に、ファイルが存在しない場合は作成されます。 READ 読み取り専用モードで開かれるファイルについて使用されます。readString 読み取り専用モードで開かれるファイルについて使用されます。ファイルは、存在している必要があります(ファイルが存在しない場合、ファイルは作成されません)。 UPDATE 読み書きモードで開かれるファイルについて使用されます。updateString 読み書きモードで開かれるファイルについて使用されます。オープン時に、ファイルが存在しない場合は作成されます。 WRITE 書き込み専用モードで開かれるファイルについて使用されます。writeString 書き込み専用モードで開かれるファイルについて使用されます。オープン時に、ファイルが存在しない場合は作成され、ファイルが存在する場合は切り捨てられます(ファイルのデータが削除されます)。
StorageVolumeInfo StorageVolumeInfo オブジェクトは、ストレージのボリュームがマウントまたはマウント解除されたときに、StorageVolumeChangeEvent オブジェクトを送出します。flash.events:EventDispatcher StorageVolumeInfo オブジェクトは、ストレージのボリュームがマウントまたはマウント解除されたときに、StorageVolumeChangeEvent オブジェクトを送出します。StorageVolume.storageVolume 静的プロパティは、イベントを送出する StorageVolumeInfo シングルトンオブジェクトを参照します。また、StorageVolumeInfo クラスは、現在マウントされているストレージボリュームを一覧で表示する getStorageVolumes メソッドを定義します。

AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、一部のテレビ用 AIR デバイスではサポートされません。また、モバイルデバイスでもサポートされません。StorageVolumeInfo.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

最新の Linux ディストリビューションでは、StorageVolumeInfo オブジェクトは、特定の場所にマウントされた物理ドライブおよびネットワークドライブに対して storageVolumeMount および storageVolumeUnmount イベントのみを送出します。

storageVolumeUnmount ストレージボリュームがマウント解除されたときに送出されます。flash.events.StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNTflash.events.StorageVolumeChangeEvent ストレージボリュームがマウント解除されたときに送出されます。

最新の Linux ディストリビューションでは、StorageVolumeInfo オブジェクトは、特定の場所にマウントされた物理ドライブおよびネットワークドライブに対して storageVolumeMount および storageVolumeUnmount イベントのみを送出します。

storageVolumeMount ストレージボリュームがマウントされたときに送出されます。flash.events.StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNTflash.events.StorageVolumeChangeEvent ストレージボリュームがマウントされたときに送出されます。

最新の Linux ディストリビューションでは、StorageVolumeInfo オブジェクトは、特定の場所にマウントされた物理ドライブおよびネットワークドライブに対して storageVolumeMount および storageVolumeUnmount イベントのみを送出します。

getStorageVolumes 現在マウントされているストレージボリュームに対応する StorageVolume オブジェクトのベクターを返します。 現在マウントされているストレージボリュームに対応する StorageVolume オブジェクトのベクターを返します。

最新の Linux ディストリビューションでは、このメソッドは特定の場所にマウントされた物理ドライブおよびネットワークドライブに対応するオブジェクトを返します。

次のコードでは、マウントされた各ストレージボリュームのルートディレクトリへのネイティブパスを一覧で表示します。 var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { trace(volumes[i].rootDirectory.nativePath); }
flash.filesystem.StorageVolume
isSupported 現在のプラットフォームで StorageVolumeInfo クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。Boolean 現在のプラットフォームで StorageVolumeInfo クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。 storageVolumeInfo StorageVolumeInfo オブジェクトのシングルトンインスタンスです。flash.filesystem:StorageVolumeInfo StorageVolumeInfo オブジェクトのシングルトンインスタンスです。このオブジェクトに、storageVolumeMount イベントおよび storageVolumeUnmount イベントのイベントリスナーを登録します。
File File オブジェクトは、ファイルまたはディレクトリへのパスを表します。flash.net:FileReference File オブジェクトは、ファイルまたはディレクトリへのパスを表します。既存のファイルまたはディレクトリを指定できます。また、存在しないファイルまたはディレクトリを指定することもできます。例えば、作成するファイルまたはディレクトリへのパスを表すことができます。

File クラスには、ファイルシステムについての情報の取得と、操作の実行(ファイルおよびディレクトリのコピーなど)のためのプロパティとメソッドが用意されています。

File オブジェクトを FileStream クラスと組み合わせて使用すると、ファイルの読み取りと書き込みを行うことができます。

File クラスは FileReference クラスを拡張します。FileReference クラス(Flash® Player および Adobe® AIR® で利用可能)はファイルへのポインターを表しますが、File クラスには、セキュリティ上の考慮事項により Flash Player(ブラウザーで実行している SWF)上では公開されない追加のプロパティおよびメソッドがあります。

File クラスには、共通的に使用されるディレクトリの場所を参照するための静的プロパティがあります。それらのプロパティを次に示します。

  • File.applicationStorageDirectory - インストールされている各 AIR アプリケーションごとに固有の記憶領域ディレクトリ
  • File.applicationDirectory - アプリケーションがインストールされている(インストールされるアセットがある場合はそれらも含まれる)読み取り専用ディレクトリ
  • File.desktopDirectory - ユーザーのデスクトップディレクトリ
  • File.documentsDirectory - ユーザーのドキュメントディレクトリ
  • File.userDirectory - ユーザーディレクトリ

これらのプロパティには、オペレーティングシステムに応じた意味のある値が設定されています。例えば、Mac OS、Linux および Windows では、ユーザーのデスクトップディレクトリを指すネイティブパスがそれぞれ次のように異なっています。こうした差異を反映して、File.desktopDirectory プロパティは、プラットフォームに応じた正しいデスクトップディレクトリパスを示すようになっています。異なるプラットフォームでも正しく動作するアプリケーションを作成するために、アプリケーションで他のファイルを使用する際は、これらのプロパティを起点としてください。その上で、resolvePath() メソッドを使用してパスを調整してください。例えば、次のコードでは、アプリケーション記憶領域ディレクトリ内の preferences.xml ファイルを参照しています。

var prefsFile:File = File.applicationStorageDirectory; prefsFile = prefsFile.resolvePath("preferences.xml");

ファイル参照時にネイティブパスをリテラル表記すると、そのコードは 1 つのプラットフォームでしか動作しないものになります。例えば、次の File オブジェクトは Windows 上でしか使用できません。

new File("C:\Documents and Settings\joe\My Documents\test.txt")

アプリケーション記憶領域ディレクトリは特に有用性が高く、当該 AIR アプリケーション用に固有の記憶領域ディレクトリを示します。これは、File.applicationStorageDirectory プロパティで定義されています。

アプリケーションディレクトリは、当該 AIR アプリケーションがインストールされている場所なので、内容を追加したり削除したりしないでください。そのような変更を加えると、AIR アプリケーションが損傷し、アプリケーションの署名が無効になることがあります。AIR は、既定ではユーザーがアプリケーションディレクトリに書き込めるように設計されていません。このディレクトリは、すべてのオペレーティングシステムのすべてのユーザーアカウントから書き込み可能になっていないためです。アプリケーション内部ファイルの書き込み場所としては、アプリケーション記憶領域ディレクトリを使用してください。編集された画像やテキストファイルなど、ユーザーがアプリケーション外で使用する可能性があるファイルに書き込むには、ドキュメントディレクトリを使用します。

FileStreamdirectoryListing getDirectoryListingAsync() メソッドを呼び出した結果、ディレクトリ一覧が得られると送出されます。flash.events.FileListEvent.DIRECTORY_LISTINGflash.events.FileListEvent getDirectoryListingAsync() メソッドを呼び出した結果、ディレクトリ一覧が得られると送出されます。 File.getDirectoryListingAsync()selectMultiple ユーザーが browseForOpenMultiple() メソッドの呼び出しによって開かれたダイアログボックスからファイルを選択すると、送出されます。flash.events.FileListEvent.SELECT_MULTIPLEflash.events.FileListEvent ユーザーが browseForOpenMultiple() メソッドの呼び出しによって開かれたダイアログボックスからファイルを選択すると、送出されます。 browseForOpenMultiple()select ユーザーがファイルまたはディレクトリ参照ダイアログボックスからファイルまたはディレクトリを選択すると、送出されます。flash.events.Event.SELECTflash.events.Event ユーザーがファイルまたはディレクトリ参照ダイアログボックスからファイルまたはディレクトリを選択すると、送出されます。 securityError 操作がセキュリティ制約に違反していると、送出されます。flash.events.SecurityErrorEvent.SECURITY_ERRORflash.events.SecurityErrorEvent 操作がセキュリティ制約に違反していると、送出されます。 ioError 非同期ファイル処理中にエラーが発生すると、送出されます。flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent 非同期ファイル処理中にエラーが発生すると、送出されます。 complete 非同期処理が完了すると、送出されます。flash.events.Event.COMPLETEflash.events.Event 非同期処理が完了すると、送出されます。 cancel 保留中の非同期処理がキャンセルされると、送出されます。flash.events.Event.CANCELflash.events.Event 保留中の非同期処理がキャンセルされると、送出されます。 File File クラスのコンストラクター関数です。path パラメーターのシンタックスが無効です。 ArgumentErrorArgumentErrorpathStringnullファイルのパスです。パスの指定には、URL を使用するか、またはネイティブの(プラットフォーム固有の)パス表記を使用します。

URL を指定する場合は、fileapp、または app-storage の URL スキームを使用できます。URL 表記を使用する場合に有効な path パラメーターの値を次に示します。

  • "app:/DesktopPathTest.xml"
  • "app-storage:/preferences.xml"
  • "file:///C:/Documents%20and%20Settings/bob/Desktop"(Bob の Windows コンピューターのデスクトップ)
  • "file:///Users/bob/Desktop"(Bob の Macintosh コンピューターのデスクトップ)

app および app-storage の URL スキームは、あらゆるファイルシステムで有効なファイルを指定できるため便利です。しかし、file URL スキームを使用してユーザーのデスクトップディレクトリを指定している他の 2 つの例では、path 引数を File() コンストラクターに渡さずに、File オブジェクトに File.desktopDirectory を代入する方法をお勧めします。こうすると、プラットフォームやユーザーに依存しない方法でデスクトップディレクトリにアクセスできます。

ネイティブのパスを指定する場合、Windows では、円記号文字またはスラッシュ文字をパス区切り文字としてこの引数で使用できます。Macintosh および Linux では、スラッシュ文字を使用します。ネイティブのパス表記を使用する場合に有効な path パラメーターの値を次に示します。

  • "C:/Documents and Settings/bob/Desktop"
  • "/Users/bob/Desktop"

ただし、この 2 つの例の場合は、path 引数を File() コンストラクターに渡さないで、File オブジェクトに File.desktopDirectory を代入してください。これにより、プラットフォームやユーザーに依存しない方法でデスクトップディレクトリにアクセスできます。

File クラスのコンストラクター関数です。

path 引数を渡した場合、File オブジェクトは指定されたパスを参照し、そのパスを反映するように nativePath プロパティと url プロパティが設定されます。

引数 path を渡してファイルパスを指定することは可能ですが、特定プラットフォーム上でしか動作しないコードになる可能性があることに注意してください。例えば、"C:¥¥Documents and Settings¥¥bob¥¥Desktop" のようなネイティブパスや "file:///C:/Documents%20and%20Settings/bob/Desktop" のような URL は、Windows 上でのみ有効です。それよりも、共通的に使用されるディレクトリを次の静的プロパティで参照するほうがはるかに望ましく、どのプラットフォームでも有効なコードを作成できます。

  • File.applicationDirectory
  • File.applicationStorageDirectory
  • File.desktopDirectory
  • File.documentsDirectory
  • File.userDirectory

その上で、resolvePath() メソッドを使用することにより、上記の各種ディレクトリからの相対パスを取得できます。例えば、次のコードでは、アプリケーション記憶領域ディレクトリ内の settings.xml ファイルを指すように File オブジェクトをセットアップしています。

var file:File = File.applicationStorageDirectory.resolvePath("settings.xml");

重要:path パラメーターで URL ストリングを渡すと、URL がデコードされ、ファイルパスが解決されます。例えば、ステートメント new File("file:///c:/test/demo%20file%201%2e0.txt") では、ネイティブパス "c:\test\demo file 1.0.txt" を持つ File オブジェクトが作成されます(URL では、file:、app: または app-storage: スキーム接頭辞が使用されます)。ただし、有効な URL 接頭辞が省略されている場合は、パスストリングはネイティブパスのように扱われ、デコードは実行されません。信頼されていない可能性があるソースから派生したパスを検証するときは、このビヘイビアーを考慮する必要があります。入力ストリングを検証するだけだと、URL デコードでは、攻撃者が検証チェックを回避できる可能性があります。インスタンス化された File オブジェクトの最終パスは必ず検証してください。

var file:File = new File( taintedString ); validate( file.nativePath ); //where validate() is your path validation function
nativePath
browseForDirectory ディレクトリ選択ダイアログボックスを表示して、ユーザーがディレクトリを選択できるようにします。参照処理(browseForOpen()、browseForOpenMultiple()、browseForSave()、browseForDirectory())が現在実行中です。 IllegalOperationErrorflash.errors:IllegalOperationErrorこのアプリケーションに必要な権限がありません。 SecurityErrorSecurityErrortitleStringダイアログボックスのタイトルバーに表示するストリングです。 ディレクトリ選択ダイアログボックスを表示して、ユーザーがディレクトリを選択できるようにします。ユーザーがディレクトリを選択すると、select イベントが送出されます。target プロパティ(select イベントで指定)は、選択されたディレクトリを指している File オブジェクトです。

ディレクトリ選択ダイアログボックスは、他のウィンドウによって「所有されている」(owner プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。

注意:Android デバイスでは、browseForDirectory() はサポートされません。File オブジェクトは cancel イベントを即座に送出します。

次のコードは、File.browseForDirectory() メソッドを使用して、ユーザーがディレクトリを選択できるようにしています。ディレクトリを選択すると、選択したディレクトリの内容が trace() の出力に列挙されます。 import flash.filesystem.File; import flash.events.Event; var directory:File = File.documentsDirectory; try { directory.browseForDirectory("Select Directory"); directory.addEventListener(Event.SELECT, directorySelected); } catch (error:Error) { trace("Failed:", error.message); } function directorySelected(event:Event):void { directory = event.target as File; var files:Array = directory.getDirectoryListing(); for(var i:uint = 0; i < files.length; i++) { trace(files[i].name); } }
browseForOpen()browseForSave()selectflash.net.FileFiltercancelflash.events:Eventファイルを開くダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。 ファイルを開くダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。selectflash.events:Eventユーザーがディレクトリを選択して、ディレクトリ選択ダイアログボックスを閉じると、送出されます。 ユーザーがディレクトリを選択して、ディレクトリ選択ダイアログボックスを閉じると、送出されます。ioErrorflash.events:IOErrorEventこのプラットフォームでは、参照処理はサポートされていません。 このプラットフォームでは、参照処理はサポートされていません。
browseForOpenMultiple ファイルを開くダイアログボックスを表示して、ユーザーが開くファイルを 1 つ以上選択できるようにします。参照処理(browseForOpen()、browseForOpenMultiple()、browseForSave()、browseForDirectory())が現在実行中です。 IllegalOperationErrorflash.errors:IllegalOperationErrorこのアプリケーションに必要な権限がありません。 SecurityErrorSecurityErrortitleStringダイアログボックスのタイトルバーに表示するストリングです。 typeFilterArraynullダイアログボックスに表示するファイルをフィルターにかける場合に使用する FileFilter インスタンスの配列です。このパラメーターを省略すると、すべてのファイルが表示されます。詳細については、FileFilter クラスを参照してください。 ファイルを開くダイアログボックスを表示して、ユーザーが開くファイルを 1 つ以上選択できるようにします。

ユーザーがファイルを選択すると、selectMultiple イベントが送出されます。target プロパティ(select イベントで指定)は、この File オブジェクトです。browseForOpen() とは異なり、browseForOpenMultiple() メソッドを使用すると、この File オブジェクトは、選択されたファイルを参照するために更新されません。その代わり、結果として得られる selectMultiple イベントには、選択されたファイルの配列が格納されます。

ファイルを開くダイアログボックスは、他のウィンドウによって「所有されている」(owner プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。

注意:Android デバイスでは、ファイルのダイアログタイトルは設定できません。title パラメーターは無視されます。

次のコードは、File.browseForOpenMultiple() メソッドを使用して、ユーザーが複数のファイルを選択できるようにしています。ファイルを選択すると、選択されたファイルのパスが出力されます。 import flash.filesystem.*; import flash.events.FileListEvent; var docsDir:File = File.documentsDirectory; try { docsDir.browseForOpenMultiple("Select Files"); docsDir.addEventListener(FileListEvent.SELECT_MULTIPLE, filesSelected); } catch (error:Error) { trace("Failed:", error.message); } function filesSelected(event:FileListEvent):void { for (var i:uint = 0; i < event.files.length; i++) { trace(event.files[i].nativePath); } }
browseForSave()browseForOpen()browseForDirectory()selectMultipleflash.net.FileFiltercancelflash.events:Eventファイルを開くダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。 ファイルを開くダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。selectMultipleflash.events:FileListEventユーザーがファイルを選択して、ファイルを開くダイアログボックスを閉じると、送出されます。 ユーザーがファイルを選択して、ファイルを開くダイアログボックスを閉じると、送出されます。ioErrorflash.events:IOErrorEventこのプラットフォームでは、参照処理はサポートされていません。 このプラットフォームでは、参照処理はサポートされていません。
browseForOpen ファイルを開くダイアログボックスを表示して、ユーザーが開くファイルを選択できるようにします。参照処理(browseForOpen()、browseForOpenMultiple()、browseForSave()、browseForDirectory())が現在実行中です。 IllegalOperationErrorflash.errors:IllegalOperationErrorこのアプリケーションに必要な権限がありません。 SecurityErrorSecurityErrortitleStringダイアログボックスのタイトルバーに表示するストリングです。 typeFilterArraynullダイアログボックスに表示するファイルをフィルターにかける場合に使用する FileFilter インスタンスの配列です。このパラメーターを省略すると、すべてのファイルが表示されます。詳細については、FileFilter クラスを参照してください。 ファイルを開くダイアログボックスを表示して、ユーザーが開くファイルを選択できるようにします。

ユーザーがファイルを選択すると、select イベントが送出されます。target プロパティ(select イベントで指定)は、選択されたファイルを指している File オブジェクトです。

ファイルを開くダイアログボックスは、他のウィンドウによって「所有されている」(owner プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。

注意:Android デバイスでは、ファイルのダイアログタイトルは設定できません。title パラメーターは無視されます。

次のコードは、File.browseForOpen() メソッドを使用して、ユーザーがテキストファイルを選択できるようにしています。ファイルを選択すると、ファイルのデータがストリングに読み込まれます。 import flash.filesystem.*; import flash.events.Event; import flash.net.FileFilter; var fileToOpen:File = new File(); var txtFilter:FileFilter = new FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml"); try { fileToOpen.browseForOpen("Open", [txtFilter]); fileToOpen.addEventListener(Event.SELECT, fileSelected); } catch (error:Error) { trace("Failed:", error.message); } function fileSelected(event:Event):void { var stream:FileStream = new FileStream(); stream.open(event.target, FileMode.READ); var fileData:String = stream.readUTFBytes(stream.bytesAvailable); trace(fileData); }
browseForSave()browseForOpenMultiple()browseForDirectory()selectflash.net.FileFiltercancelflash.events:Eventファイルを開くダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。 ファイルを開くダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。selectflash.events:Eventユーザーがファイルを選択して、ファイルを開くダイアログボックスを閉じると、送出されます。 ユーザーがファイルを選択して、ファイルを開くダイアログボックスを閉じると、送出されます。ioErrorflash.events:IOErrorEventこのプラットフォームでは、参照処理はサポートされていません。 このプラットフォームでは、参照処理はサポートされていません。
browseForSave ファイルを保存ダイアログボックスを表示して、ユーザーがファイルの保存先を選択できるようにします。参照処理(browseForOpen()、browseForOpenMultiple()、browseForSave()、browseForDirectory())が現在実行中です。 IllegalOperationErrorflash.errors:IllegalOperationErrorこのアプリケーションに必要な権限がありません。 SecurityErrorSecurityErrortitleStringダイアログボックスのタイトルバーに表示するストリングです。 ファイルを保存ダイアログボックスを表示して、ユーザーがファイルの保存先を選択できるようにします。

ユーザーがファイルを選択すると、select イベントが送出されます。target プロパティ(select イベントで指定)は、選択された保存先を指している File オブジェクトです。

ファイルを保存ダイアログボックスは、他のウィンドウによって「所有されている」(owner プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。

注意:Android デバイスでは、ファイルのダイアログタイトルは設定できません。title パラメーターは無視されます。

次のコードは、File.browseForSave() メソッドを使用して、ユーザーがファイルを保存するためのパスを選択できるようにしています。ファイルを選択すると、選択したファイルパスにデータが保存されます。 import flash.filesystem.*; import flash.events.Event; var docsDir:File = File.documentsDirectory; try { docsDir.browseForSave("Save As"); docsDir.addEventListener(Event.SELECT, saveData); } catch (error:Error) { trace("Failed:", error.message); } function saveData(event:Event):void { var newFile:File = event.target as File; var str:String = "Hello."; if (!newFile.exists) { var stream:FileStream = new FileStream(); stream.open(newFile, FileMode.WRITE); stream.writeUTFBytes(str); stream.close(); } }
browseForDirectory()browseForOpen()selectflash.net.FileFiltercancelflash.events:Eventファイルの保存ダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。 ファイルの保存ダイアログボックスでユーザーが「キャンセル」をクリックすると、送出されます。selectflash.events:Eventユーザーがファイルを選択して、ファイルの保存ダイアログボックスを閉じると、送出されます。 ユーザーがファイルを選択して、ファイルの保存ダイアログボックスを閉じると、送出されます。ioErrorflash.events:IOErrorEventこのプラットフォームでは、参照処理はサポートされていません。 このプラットフォームでは、参照処理はサポートされていません。
cancel 保留中の非同期処理をキャンセルします。 保留中の非同期処理をキャンセルします。 canonicalize File のパスを標準化します。 File のパスを標準化します。

File オブジェクトが既存のファイルまたはディレクトリを表している場合は、標準化によって、実際のファイル名またはディレクトリ名と大文字小文字が一致するようにパスが調整されます。File オブジェクトがシンボリックリンクである場合は、標準化によって、参照先のファイルまたはディレクトリが存在するかどうかにかかわらず、リンクが指しているファイルまたはディレクトリに一致するようにパスが調整されます。小文字と大文字が区別されるファイルシステム(Linux など)では、小文字と大文字が異なるだけの名前のファイルが複数存在すると、canonicalize() メソッドは(ファイルシステムによって指定された順序で)最初に発見されたファイルと一致するようにパスを調整します。

また、Windows では、標準化によって、短いファイル名が長いファイル名に変換されます。

次のコードは、canonicalize() メソッドを使用して、大文字小文字が区別された正しいディレクトリ名を確認する方法を示しています。この例を実行する前に、ローカルコンピューターのデスクトップ上に AIR Test という名前のディレクトリを作成してください。 import flash.filesystem.*; var path:File = File.desktopDirectory.resolvePath("air test"); trace(path.nativePath); path.canonicalize(); trace(path.nativePath); // ...\AIR Test 次のコードは、canonicalize() メソッドを使用して、Windows ディレクトリの短い名前に基づいて長い名前を確認する方法を示しています。この例では、C: ドライブのルートに AIR Test という名前のディレクトリが存在し、このディレクトリに対してシステムが短い名前 AIR~1 を割り当てていることを前提としています。 import flash.filesystem.*; var path:File = new File(); path.nativePath = "C:\\AIR~1"; path.canonicalize(); trace(path.nativePath); // C:\AIR Test
clone この File オブジェクトのコピーを返します。flash.filesystem:File この File オブジェクトのコピーを返します。イベント登録はコピーされません。

注意:このメソッドでは、ファイル自体がコピーされるのではありません。 単に、ActionScript File オブジェクトのインスタンスのコピーが作成されるだけです。ファイルをコピーするには、copyTo() メソッドを使用します。

copyToAsync この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、destination パラメーターで指定された場所にコピーする処理を開始します。このアプリケーションに、コピー先に書き込むために必要な権限がありません。 SecurityErrorSecurityErrornewLocationflash.net:FileReference新しいファイルの宛先の場所です。この File オブジェクトは、結果として得られる(コピーされる)ファイルまたはディレクトリを表すものであり、それを格納しているディレクトリへのパスを表すものではありません。 overwriteBooleanfalsefalse の場合、target ファイルで指定されたファイルが既に存在すると、コピーが失敗します。true の場合は、同じ名前のファイルまたはディレクトリが存在すると、このファイルまたはディレクトリが上書きされます。 この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、destination パラメーターで指定された場所にコピーする処理を開始します。

完了後、complete イベント(成功)または ioError イベント(失敗)が送出されます。コピー処理によって、可能な場合には必要な親ディレクトリが作成されます。

次のコードは、copyToAsync() メソッドを使用してファイルをコピーする方法を示しています。このコードを実行する前に、ローカルコンピューターのドキュメントディレクトリ内の AIR Test サブディレクトリに test1.txt というファイルを作成しておく必要があります。結果として得られるコピーファイルには test2.txt という名前が付けられ、同じ AIR Test サブディレクトリに置かれます。overwrite パラメーターを true に設定すると、test2.txt という名前の既存のファイルがあった場合はこのファイルが上書きされます。 import flash.filesystem.File; import flash.events.Event; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test/test2.txt"); sourceFile.copyToAsync(destination, true); sourceFile.addEventListener(Event.COMPLETE, fileCopiedHandler); function fileCopiedHandler(event:Event):void { trace("Done."); }
copyTo()moveToAsync()completeflash.events:Eventファイルまたはディレクトリが正常にコピーされると送出されます。 ファイルまたはディレクトリが正常にコピーされると送出されます。ioErrorflash.events:IOErrorEventソースが存在しないか、宛先が存在し、かつ overwritefalse であるか、ソースをターゲットにコピーできなかったか、またはソースおよび宛先が同じファイルまたはフォルダーを参照し、かつ overwritetrue に設定されています。 Windows では、開いているファイルや、開いているファイルが格納されているディレクトリをコピーすることはできません。 ソースが存在しないか、宛先が存在し、かつ overwrite が false であるか、ソースをターゲットにコピーできなかったか、またはソースおよび宛先が同じファイルまたはフォルダーを参照し、かつ overwrite が true に設定されています。
copyTo この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、newLocation パラメーターで指定された場所にコピーします。ソースが存在しないか、宛先が存在し、かつ overwritefalse であるか、ソースをターゲットにコピーできなかったか、またはソースおよび宛先が同じファイルまたはフォルダーを参照し、かつ overwritetrue に設定されています。 Windows では、開いているファイルや、開いているファイルが格納されているディレクトリをコピーすることはできません。 IOErrorflash.errors:IOErrorこのアプリケーションに、コピー先に書き込むために必要な権限がありません。 SecurityErrorSecurityErrornewLocationflash.net:FileReference新しいファイルの宛先の場所です。この File オブジェクトは、結果として得られる(コピーされる)ファイルまたはディレクトリを表すものであり、それを格納しているディレクトリへのパスを表すものではありません。 overwriteBooleanfalsefalse の場合、target パラメーターで指定されたファイルが既に存在すると、コピーが失敗します。true の場合は、同じ名前のファイルまたはディレクトリが存在すると、このファイルまたはディレクトリが上書きされます。 この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、newLocation パラメーターで指定された場所にコピーします。コピー処理によって、可能な場合には必要な親ディレクトリが作成されます。 次のコードは、copyTo() メソッドを使用してファイルをコピーする方法を示しています。このコードを実行する前に、ローカルコンピューターのドキュメントディレクトリ内の AIR Test サブディレクトリに test1.txt というファイルを作成しておく必要があります。結果として得られるコピーファイルには test2.txt という名前が付けられ、同じ AIR Test サブディレクトリに置かれます。overwrite パラメーターを true に設定すると、test2.txt という名前の既存のファイルがあった場合はこのファイルが上書きされます。 import flash.filesystem.File; import flash.events.Event; var sourceFile:FileReference = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:FileReference = File.documentsDirectory; destination = destination.resolvePath("AIR Test/test2.txt"); if (sourceFile.copyTo(destination, true)) { trace("Done."); } 次のコードは、copyTo() メソッドを使用してファイルをコピーする方法を示しています。このコードを実行する前に、ローカルコンピューターのホームディレクトリ内の AIR Test サブディレクトリに test1.txt というファイルを作成しておく必要があります。結果として得られるコピーファイルには、test2.txt という名前が付けられます。try ステートメントと catch ステートメントは、エラーへの対処方法を示しています。 import flash.filesystem.File; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test/test2.txt"); try { sourceFile.copyTo(destination, true); } catch (error:Error) { trace("Error:", error.message); } copyToAsync()moveTo()createDirectory 指定されたディレクトリおよび必要な親ディレクトリを作成します。ディレクトリが存在せず、作成できませんでした。 IOErrorflash.errors:IOErrorこのアプリケーションに必要な権限がありません。 SecurityErrorSecurityError 指定されたディレクトリおよび必要な親ディレクトリを作成します。ディレクトリがすでに存在する場合は、何も行われません。 次のコードでは、デスクトップ上の test.txt という名前のファイルをドキュメントディレクトリ内の AIR Test サブディレクトリに移動します。createDirectory() メソッドを呼び出すことによって、ファイルを移動する前に AIR Test ディレクトリが作成されます。 import flash.filesystem.*; var source:File = File.desktopDirectory.resolvePath("test.txt"); var target:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var targetParent:File = target.parent; targetParent.createDirectory(); source.moveTo(target, true); createTempDirectory 新しい一時ディレクトリへの参照を返します。新しい一時ディレクトリを参照している File オブジェクトです。 flash.filesystem:File 新しい一時ディレクトリへの参照を返します。これは、システムの一時ディレクトリパスに作成される新しいディレクトリです。

このメソッドを使用すると、新しい一意のディレクトリを指定できます。システムに照会してディレクトリが新規かつ一意であることを確認する必要はありません。

デバイスによっては、一時ディレクトリは自動では削除されないため、アプリケーションを閉じる前に削除することを検討してください。

次のコードでは、createTempFile() メソッドを使用して新しい一時ディレクトリへの参照を取得します。 import flash.File; var temp:File = File.createTempDirectory(); trace(temp.nativePath); このコードを実行するたびに、新しい(一意の)ファイルが作成されます。
createTempFile()
createTempFile 新しい一時ファイルへの参照を返します。新しい一時ファイルを参照している File オブジェクトです。 flash.filesystem:File 新しい一時ファイルへの参照を返します。これは、システムの一時ディレクトリパスに作成される新しいファイルです。

このメソッドを使用すると、新しい一意のファイルを指定できます。システムに照会してファイルが新規かつ一意であることを確認する必要はありません。

一時ファイルは自動では削除されないため、アプリケーションを閉じる前に削除することを検討してください。

次のコードでは、createTempFile() メソッドを使用して新しい一時ファイルへの参照を取得します。 import flash.File; var temp:File = File.createTempFile(); trace(temp.nativePath); このコードを実行するたびに、新しい(一意の)ファイルが作成されます。
createTempDirectory()
deleteDirectoryAsync ディレクトリを非同期で削除します。このアプリケーションに、ディレクトリを削除するために必要な権限がありません。 SecurityErrorSecurityErrordeleteDirectoryContentsBooleanfalseファイルまたはサブディレクトリが格納されているディレクトリを削除するかどうかを指定します。false の場合、ディレクトリにファイルまたはサブディレクトリが格納されていると、ioError イベントが送出されます。 ディレクトリを非同期で削除します。このファイルが実際にディレクトリに対するシンボリックリンクの場合は、ディレクトリではなくこのリンクが削除されます。 deleteDirectory()deleteFileAsync()moveToTrashAsync()completeflash.events:Eventディレクトリが正常に削除されると送出されます。 ディレクトリが正常に削除されると送出されます。ioErrorflash.events:IOErrorEventディレクトリが存在しないか、削除できませんでした。Windows では、開いているファイルのあるディレクトリを削除することはできません。 ディレクトリが存在しないか、削除できませんでした。deleteDirectory ディレクトリを削除します。ディレクトリが存在しないか、削除できませんでした。Windows では、開いているファイルのあるディレクトリを削除することはできません。 IOErrorflash.errors:IOErrorこのアプリケーションに、ディレクトリを削除するために必要な権限がありません。 SecurityErrorSecurityErrordeleteDirectoryContentsBooleanfalseファイルまたはサブディレクトリが格納されているディレクトリを削除するかどうかを指定します。false の場合、ディレクトリにファイルまたはサブディレクトリが格納されていると、このメソッドの呼び出しで例外がスローされます。 ディレクトリを削除します。このファイルが実際にディレクトリに対するシンボリックリンクの場合は、ディレクトリではなくこのリンクが削除されます。 次のコード例では、空のディレクトリを作成し、次に deleteDirectory() メソッドを使用してこのディレクトリを削除します。 import flash.filesystem.File; var directory:File = File.documentsDirectory.resolvePath("Empty Junk Directory/"); File.createDirectory(directory); trace(directory.exists); // true directory.deleteDirectory(); trace(directory.exists); // false deleteDirectoryAsync()deleteFile()moveToTrash()deleteFileAsync ファイルを非同期で削除します。このアプリケーションに、ファイルを削除するために必要な権限がありません。 SecurityErrorSecurityError ファイルを非同期で削除します。このファイルが実際にシンボリックリンクの場合は、ターゲットファイルではなくこのリンクが削除されます。 deleteDirectoryAsync()deleteFile()moveToTrashAsync()completeflash.events:Eventファイルが正常に削除されると送出されます。 ファイルが正常に削除されると送出されます。ioErrorflash.events:IOErrorEventファイルが存在しないか、削除できませんでした。Windows では、現在開いているファイルを削除することはできません。 ファイルが存在しないか、削除できませんでした。deleteFile ファイルを削除します。ファイルが存在しないか、削除できませんでした。Windows では、現在開いているファイルを削除することはできません。 IOErrorflash.errors:IOErrorこのアプリケーションに、ファイルを削除するために必要な権限がありません。 SecurityErrorSecurityError ファイルを削除します。このファイルが実際にシンボリックリンクの場合は、ターゲットファイルではなくこのリンクが削除されます。 次のコードでは、一時ファイルを作成し、次に deleteFile() メソッドを呼び出して一時ファイルを削除します。 import flash.filesystem.*; var file:File = File.createTempFile(); trace(file.exists); // true file.deleteFile(); trace(file.exists); // false deleteDirectory()deleteFileAsync()moveToTrash()getDirectoryListingAsync この File オブジェクトによって表されるディレクトリの内容に対応する File オブジェクトの配列を非同期で取得します。 この File オブジェクトによって表されるディレクトリの内容に対応する File オブジェクトの配列を非同期で取得します。 次のコードは、getDirectoryListingAsync() メソッドを使用してユーザーディレクトリの内容を列挙する方法を示しています。 import flash.filesystem.File; import flash.events.FileListEvent; var directory:File = File.userDirectory; directory.getDirectoryListingAsync(); directory.addEventListener(FileListEvent.DIRECTORY_LISTING, directoryListingHandler); function directoryListingHandler(event:FileListEvent):void { var list:Array = event.files; for (var i:uint = 0; i < list.length; i++) { trace(list[i].nativePath); } } getDirectoryListing()getRootDirectories()directoryListing イベントioErrorflash.events:ErrorEventこのディレクトリを読み取るために必要なアクセス権がないか、ディレクトリが存在しません。 このディレクトリを読み取るために必要なアクセス権がないか、ディレクトリが存在しません。directoryListingflash.events:FileListEventディレクトリの内容が正常に列挙されました。contents イベントには files プロパティが含まれており、これは結果の Files オブジェクトの配列です。 ディレクトリの内容が正常に列挙されました。getDirectoryListing この File オブジェクトによって表されるディレクトリ内のファイルおよびディレクトリに対応する File オブジェクトの配列を返します。File オブジェクトの配列です。 Array この File オブジェクトによって表されるディレクトリ内のファイルおよびディレクトリに対応する File オブジェクトの配列を返します。このメソッドは、サブディレクトリの内容は調べません。 次のコードは、getDirectoryListing() メソッドを使用してユーザーディレクトリの内容を列挙する方法を示しています。 import flash.filesystem.File; var directory:File = File.userDirectory; var list:Array = directory.getDirectoryListing(); for (var i:uint = 0; i < list.length; i++) { trace(list[i].nativePath); } getDirectoryListingAsync()getRootDirectories()getRelativePath 2 つの File パス間の相対パスを探します。参照が null です。 ArgumentErrorArgumentError呼び出し元がアプリケーションのセキュリティサンドボックス内ではありません。 SecurityErrorSecurityErrorこのファイル(またはディレクトリ)と ref ファイル(またはディレクトリ)との間の相対パス(可能な場合)、または null です。 Stringrefflash.net:FileReference パスを指定する File オブジェクトです。 useDotDotBooleanfalse 結果として得られる相対パスで ".." コンポーネントを使用できるかどうかを指定します。 2 つの File パス間の相対パスを探します。

相対パスは、2 つ目の(パラメーター)参照を見つけるためにこの参照に追加(解決)されるコンポーネントのリストです。相対パスは、区切り文字 "/" を使用して返されます。

必要に応じて、相対パスに ".." 参照を含めることができますが、そのようなパスが明確なボリューム境界を越えることはありません。

getRootDirectories ファイルシステムのルートディレクトリを列挙している File オブジェクトの配列を返します。ルートディレクトリを列挙している File オブジェクトの配列。 Array ファイルシステムのルートディレクトリを列挙している File オブジェクトの配列を返します。

例えば、Windows ではこれは C: ドライブや D: ドライブなどのボリュームのリストです。ディスクが挿入されていない CD または DVD ドライブなどの空のドライブは、この配列に含まれません。Mac OS および Linux の場合、このメソッドは常にマシンの一意のルートディレクトリを返します(「/」ディレクトリ)。

Android ファイルシステムなど、ルートが読み取り可能なファイルシステムでは、返される File オブジェクトのプロパティは実際の値を反映するとは限りません。例えば、Android の spaceAvailable プロパティでは 0 がレポートされます。

次のコードでは、ルートディレクトリの一覧を出力します。 import flash.filesystem.File; var rootDirs:Array = File.getRootDirectories(); for (var i:uint = 0; i < rootDirs.length; i++) { trace(rootDirs[i].nativePath); }
moveToAsync この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、newLocation パラメーターで指定された場所に移動する処理を開始します。このアプリケーションに、ファイルを移動するために必要な権限がありません。 SecurityErrorSecurityErrornewLocationflash.net:FileReference移動先の場所です。このオブジェクトは、結果として得られる(移動される)ファイルまたはディレクトリを表すものであり、それを格納しているディレクトリへのパスを表すものではありません。 overwriteBooleanfalsefalse の場合、target ファイルが既に存在すると移動が失敗します。true の場合は、同じ名前のファイルまたはディレクトリが存在すると、このファイルまたはディレクトリが上書きされます。 この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、newLocation パラメーターで指定された場所に移動する処理を開始します。

ファイルの名前を変更するには、そのファイルのディレクトリにある別の名前のファイルへのパスを指すように destination パラメーターを設定します。

移動処理によって、可能な場合には必要な親ディレクトリが作成されます。

次のコードは、moveToAsync() メソッドを使用してファイルの名前を変更する方法を示しています。元のファイル名は test1.txt で、変更後の名前は test2.txt です。ソースと宛先の File オブジェクトは両方とも同じディレクトリ(ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリ)を指しているため、この moveToAsync() メソッドでは、ファイルが新しいディレクトリに移動されるのではなく、ファイルの名前が変更されます。このコードを実行する前に、ローカルコンピューターのドキュメントディレクトリ内の Apollo Test サブディレクトリに test1.txt というファイルを作成しておく必要があります。overwrite パラメーターを true に設定すると、test2.txt という名前の既存のファイルがあった場合はこのファイルが上書きされます。 import flash.filesystem.File; import flash.events.Event; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("Apollo Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("Apollo Test/test2.txt"); var sourceFile.moveToAsync(destination, true); sourceFile.addEventListener(Event.COMPLETE, fileMoveCompleteHandler); function fileMoveCompleteHandler(event:Event):void { trace("Done.") }
copyToAsync()moveTo()moveToTrashAsync()completeflash.events:Eventファイルまたはディレクトリが正常に移動されると送出されます。 ファイルまたはディレクトリが正常に移動されると送出されます。ioErrorflash.events:IOErrorEventソースが存在しないか、宛先が存在し overwritefalse であるか、またはソースをターゲットに移動できなかったか、またはソースと宛先が同じファイルまたはフォルダーを参照し overwritetrue に設定されています。Windows では、開いているファイルや、開いているファイルが格納されているディレクトリを移動することはできません。 ソースが存在しないか、宛先が存在し、かつ overwrite が false であるか、ソースをターゲットに移動できなかったか、またはソースおよび宛先が同じファイルまたはフォルダーを参照し、かつ overwrite が true に設定されています。
moveToTrashAsync ファイルまたはディレクトリを非同期でごみ箱に移動します。このアプリケーションに、ファイルをごみ箱に移動するために必要な権限がありません。 SecurityErrorSecurityError ファイルまたはディレクトリを非同期でごみ箱に移動します。

注意:回復可能なごみ箱フォルダーという概念をサポートしないオペレーティングシステムの場合、ファイルは直ちに削除されます。

moveToTrash()ioErrorflash.events:IOErrorEvent操作がオペレーティングシステムによって許可されなかったか、ファイルまたはディレクトリが存在しません。Windows では、開いているファイルや、現在開いているファイルが格納されているディレクトリを移動することはできません。 操作がオペレーティングシステムによって許可されなかったか、ファイルまたはディレクトリが存在しません。completeflash.events:Eventファイルまたはディレクトリが正常にゴミ箱に移動されると送出されます。 ファイルまたはディレクトリが正常にゴミ箱に移動されると送出されます。
moveToTrash ファイルまたはディレクトリをごみ箱に移動します。操作がオペレーティングシステムによって許可されなかったか、ファイルまたはディレクトリが存在しません。Windows では、開いているファイルや、現在開いているファイルが格納されているディレクトリを移動することはできません。 IOErrorflash.errors:IOErrorこのアプリケーションに、ファイルをごみ箱に移動するために必要な権限がありません。 SecurityErrorSecurityError ファイルまたはディレクトリをごみ箱に移動します。

注意:回復可能なごみ箱フォルダーという概念をサポートしないオペレーティングシステムの場合、ファイルは直ちに削除されます。

moveToTrashAsync()
moveTo この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、destination パラメーターで指定された場所に移動します。ソースが存在しないか、宛先が存在し、かつ overwritefalse に設定されているか、ソースファイルまたはディレクトリをターゲットの場所に移動できなかったか、またはソースおよび宛先が同じファイルまたはフォルダーを参照し、かつ overwritetrue に設定されています。Windows では、開いているファイルや、開いているファイルが格納されているディレクトリを移動することはできません。 IOErrorflash.errors:IOErrorこのアプリケーションに、ファイルを移動するために必要な権限がありません。 SecurityErrorSecurityErrornewLocationflash.net:FileReference移動先の場所です。このオブジェクトは、結果として得られる(移動される)ファイルまたはディレクトリを表すものであり、それを格納しているディレクトリへのパスを表すものではありません。 overwriteBooleanfalsefalse の場合、target ファイルが既に存在すると移動が失敗します。true の場合は、同じ名前のファイルまたはディレクトリが存在すると、このファイルまたはディレクトリが上書きされます。 この File オブジェクトで指定された場所にあるファイルまたはディレクトリを、destination パラメーターで指定された場所に移動します。

ファイルの名前を変更するには、そのファイルのディレクトリにある別の名前のファイルへのパスを指すように destination パラメーターを設定します。

移動処理によって、可能な場合には必要な親ディレクトリが作成されます。

次のコードは、moveTo() メソッドを使用してファイルの名前を変更する方法を示しています。元のファイル名は test1.txt で、変更後のファイル名は test2.txt です。ソースと宛先の File オブジェクトは両方とも同じディレクトリ(ユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリ)を指しているため、この moveTo() メソッドでは、ファイルが新しいディレクトリに移動されるのではなく、ファイルの名前が変更されます。このコードを実行する前に、ローカルコンピューターのドキュメントディレクトリ内の AIR Test サブディレクトリに test1.txt というファイルを作成しておく必要があります。overwrite パラメーターを true に設定すると、test2.txt という名前の既存のファイルがあった場合はこのファイルが上書きされます。 import flash.filesystem.File; import flash.events.Event; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("Apollo Test/test2.txt"); try { sourceFile.moveTo(destination, true); } catch (error:Error) { trace("Error:" + error.message); } 次のコードは、moveTo() メソッドを使用してファイルを移動する方法を示しています。元のファイルはユーザーのドキュメントディレクトリ内の Apollo Test サブディレクトリに格納されている test1.txt ファイルであり、このファイルが Results サブディレクトリに移動されます。このコードを実行する前に、ローカルコンピューターのホームディレクトリ内の AIR Test サブディレクトリに test1.txt というファイルを作成しておく必要があります。try ステートメントと catch ステートメントは、エラーへの対処方法を示しています。 import flash.filesystem.File; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test/Results/test1.txt"); try { sourceFile.moveTo(destination, true); } catch (error:Error) { trace("Error:" + error.message); }
copyTo()moveToAsync()moveToTrash()
openWithDefaultApplication このファイル形式用としてオペレーティングシステムに登録されているアプリケーションで、ファイルを開きます。(Mac OS および Linux)ファイルを開くことができるアプリケーションが見つかりません。(Windows では、アプリケーションが関連付けられていないファイルを開こうとすると警告なしに例外なく失敗します。) ErrorErrorこのファイルは、アプリケーションディレクトリにあるか、使用できないファイル形式です。このエラーは、ネイティブアプリケーションインストーラー(拡張デスクトップアプリケーション)によってインストールされた AIR アプリケーションには適用されません。 IllegalOperationErrorflash.errors:IllegalOperationErrorファイルが存在しないか、このファイルを開くことのできるアプリケーションが登録されていません。 IOErrorflash.errors:IOErrorファイルが存在しません。 ReferenceErrorReferenceError このファイル形式用としてオペレーティングシステムに登録されているアプリケーションで、ファイルを開きます。

AIR には、File.openWithDefaultApplication() メソッドで開けないファイルがあります。Windows では、特定のファイル形式のファイル(以下に示す特定の拡張子が付いたファイル)は開けません。Mac OS および Linux では、AIR は以下に指定した特定のアプリケーションで起動するファイルを開けないようにします。openWithDefaultApplication() メソッドを使用して、これらのファイルを開こうとすると、例外が発生します。ただし、ネイティブインストーラー(拡張デスクトッププロファイルアプリケーション)でインストールした AIR アプリケーションは、これらの制限を受けないので、すべての形式のファイルを開くことができます。

アプリケーションディレクトリのドキュメントは開けません。

次の表に、Windows で使用できないファイル拡張子と、Mac OS および Linux で使用できないアプリケーションを示します。

Windows ドキュメントの拡張子 種類 対応する Mac OS アプリケーション 対応する Linux アプリケーション bat バッチファイルコマンド ターミナル デフォルトアプリケーションなし cmd DOS および Windows コマンドファイル ターミナル デフォルトアプリケーションなし com コマンド ターミナル デフォルトアプリケーションなし csh UNIX csh シェルスクリプト ターミナル /bin/csh 破線 UNIX dash シェルスクリプト ターミナル /bin/dash ksh UNIX ksh シェルスクリプト ターミナル /bin/ksh sh UNIX シェルスクリプト ターミナル /bin/bash tcsh UNIX tcsh シェルスクリプト ターミナル /bin/tcsh zsh UNIX zsh シェルスクリプト ターミナル /bin/zsh exe 実行可能ファイル 実行可能ビット、.app 拡張子 /lib/ld.so lnk Windows ショートカットファイル 実行可能ビット、.app 拡張子 Linux のリンク、実行可能なビットセット、デフォルトアプリケーションなし pif プログラム情報ファイル 実行可能ビット、.app 拡張子 N/A reg Windows 95 / 98 用の登録情報 / 登録キー、レジストリデータファイル N/A N/A scf Windows Explorer のコマンド ScriptEditor、AutomatorRunner N/A shb、shs シェルスクラップオブジェクトファイル N/A N/A prg プログラムファイル N/A N/A vb、vbe、vbs VBScript ファイル N/A N/A vsmacros Visual Studio .NET バイナリベースのマクロプロジェクト N/A N/A ws、wsc、wsf、wsh Windows スクリプトファイル ScriptEditor、AutomatorRunner N/A fxp コンパイル済み Fox Pro ソースコード N/A N/A mas Microsoft Access ストアドプロシージャ N/A N/A scr Windows スクリーンセーバー N/A N/A py、pyc Python スクリプトファイル Python Python pl Perl スクリプトファイル ターミナル perl cgi Common Gateway Interface(CGI)スクリプトファイル ターミナル perl msi、msm、msp、mst、idt、cub、pcp Windows インストーラーファイル インストーラー N/A job Windows タスクスケジューラーのタスクオブジェクト N/A N/A jar、js、jse Java アーカイブファイル、JavaScript ファイル、JScript エンコードスクリプトファイル JarLauncher jar url インターネットショートカット N/A N/A hta HTML アプリケーション N/A N/A

Mac OS X のみ 種類 Mac OS X アプリケーション 対応する Linux アプリケーション N/A Mac OS X Java アプレット AppletLauncher N/A N/A Mac OS X AppleScript プラグイン systemevents N/A N/A Mac OS X ウィジェット dock、dashboardlauncher N/A

Linux 専用のドキュメント拡張子 種類 対応する Mac OS X アプリケーション Linux アプリケーション rb Ruby シェルスクリプト N/A ruby desktop デスクトップファイルおよびショートカット N/A デフォルトアプリケーションなし directory ディレクトリファイルおよびショートカット N/A デフォルトアプリケーションなし

次のコードでは、MP3 ファイルを探して、MP3 ファイル再生用のデフォルトアプリケーションでそのファイルを開きます。 import flash.filesystem.File; import flash.net.FileFilter; var file:File = File.documentsDirectory; var mp3Filter:FileFilter = new FileFilter("MP3 Files", "*.mp3"); file.browseForOpen("Open", [mp3Filter]); file.addEventListener(Event.SELECT, fileSelected); function fileSelected(e:Event):void { file.openWithDefaultApplication(); }
downloadedNativeProcess
resolvePath path パラメーター(ストリング)に基づいて、この File オブジェクトのパスを基準とした相対的なパスを持つ新しい File オブジェクトを作成します。結果として得られたパスを示す新しい File オブジェクト。 flash.filesystem:FilepathStringこの File オブジェクトのパスに追加するパス(path パラメーターが相対パスである場合)、または返すパス(path パラメーターが絶対パスである場合)。 path パラメーター(ストリング)に基づいて、この File オブジェクトのパスを基準とした相対的なパスを持つ新しい File オブジェクトを作成します。

path パラメーターとして相対パスまたは絶対パスを使用できます。

相対パスを指定した場合、指定した path は File オブジェクトのパスの末尾に「追加」されます。ただし、「..」を path で使用すると、File オブジェクトの子ではないパスが結果として返されることがあります。結果として得られる参照は、実際のファイルシステムの場所を参照していなくても構いません。

絶対ファイル参照を指定した場合、メソッドは、そのパスをポイントする File オブジェクトを返します。絶対ファイル参照では、ユーザーのオペレーティングシステムの有効なネイティブパス構文(Windows の「C:\\test」など)を使用する必要があります。URL(「file:///c:/test」など)は path パラメーターには使用しないでください。

結果として得られたパスは、すべて次のように正規化されます。

  • すべての "."エレメントは無視されます。
  • すべての ".."エレメントは、その親エントリを使用します。
  • ".." 参照がファイルシステムのルートまたはアプリケーションの永続記憶領域のルートに達している場合、そのノードを越えることはありません。これは無視されます。

パスの区切り文字としては、常にスラッシュ(/)を使用してください。Windows では、バックスラッシュ(¥)文字も使用できますが、推奨されません。バックスラッシュ文字を使用すると、アプリケーションが他のプラットフォームで動作しない場合があります。

Linux では、ファイル名およびディレクトリ名の大文字と小文字は区別されます。

applicationDirectory インストールされたアプリケーションファイルが格納されているフォルダーです。flash.filesystem:File インストールされたアプリケーションファイルが格納されているフォルダーです。

このオブジェクトの url プロパティは、app URL スキーム(file URL スキームではない)を使用します。したがって、url ストリングの指定は「app:」「file:」)ではない)で始めます。また、File.applicationDirectory ディレクトリを基準とする相対位置に(resolvePath() メソッドを使用して)File オブジェクトを作成すると、その File オブジェクトの url プロパティでも app URL スキームが使用されます。

注意:app: URL スキームを使用するパスを持つファイルまたはディレクトリに書き込むことはできません。また、app: URL スキームを使用するパスを持つファイルやフォルダーの削除または作成を行うこともできません。アプリケーションディレクトリの内容を変更することはセキュリティ上の理由から推奨されません。したがって、一部のプラットフォームではオペレーティングシステムによってブロックされます。アプリケーション固有のデータを格納する必要がある場合は、アプリケーションの記憶領域ディレクトリ(File.applicationStorageDirectory)を使用することを検討してください。アプリケーションの記憶領域ディレクトリ内のコンテンツがアプリケーション特権機能(AIR API)にアクセスできるようにする必要がある場合は、サンドボックスブリッジを使用してその機能を公開します。

applicationDirectory プロパティを使用すると、異なるプラットフォームでも動作する方法でアプリケーションディレクトリを参照できます。アプリケーションディレクトリを参照するように File オブジェクトを設定する際、nativePath または url プロパティを直接に使用すると、そのパスが有効であるプラットフォーム上でしか動作しないコードになります。

Android では、アプリケーションディレクトリを示す File オブジェクトの nativePath プロパティは空の文字列です。アプリケーションファイルにアクセスするには、url プロパティを使用します。

applicationStorageDirectory
applicationStorageDirectory アプリケーションのプライベート記憶領域ディレクトリです。flash.filesystem:File アプリケーションのプライベート記憶領域ディレクトリです。

それぞれの AIR アプリケーションは、永続的な固有のアプリケーション記憶領域ディレクトリを持っています。このディレクトリは、File.applicationStorageDirectory に初めてアクセスしたときに作成されます。このディレクトリは、アプリケーション固有のデータを格納するために利用されます。

AIR アプリケーションのアンインストール時に、アプリケーション記憶領域ディレクトリとその中のファイルが削除されるかどうかは、プラットフォームによって異なります。

このオブジェクトの url プロパティは、app-storage URL スキーム(file URL スキームではない)を使用します。したがって、url ストリングの指定は「app-storage:」「file:」)ではない)で始めます。また、File.applicationStoreDirectory ディレクトリを基準とする相対位置に(resolvePath() メソッドを使用して)File オブジェクトを作成すると、その File オブジェクトの url でも app-storage URL スキームが使用されます(例を参照)。

applicationStorageDirectory プロパティを使用すると、異なるプラットフォームでも動作する方法でアプリケーション記憶領域ディレクトリを参照できます。アプリケーション記憶領域ディレクトリを参照するように File オブジェクトを設定する際、nativePath または url プロパティを直接に使用すると、そのパスが有効であるプラットフォーム上でしか動作しないコードになります。

次の例では、アプリケーション記憶領域ディレクトリの "images" サブディレクトリを指している File オブジェクトを作成します。 import flash.filesystem.File; var tempFiles:File = File.applicationStorageDirectory; tempFiles = tempFiles.resolvePath("images/"); trace(tempFiles.url); // app-storage:/images
desktopDirectory ユーザーのデスクトップディレクトリです。flash.filesystem:File ユーザーのデスクトップディレクトリです。

desktopDirectory プロパティを使用すると、異なるプラットフォームでも動作する方法でデスクトップディレクトリを参照できます。デスクトップディレクトリを参照するように File オブジェクトを設定する際、nativePath または url プロパティを直接に使用すると、そのパスが有効であるプラットフォーム上でしか動作しないコードになります。

オペレーティングシステムがデスクトップディレクトリをサポートしていない場合、ファイルシステムの適切なディレクトリが代わりに使用されます。

テレビ用 AIR デバイスには、ユーザーのデスクトップディレクトリという概念がありません。このため、desktopDirectory プロパティの参照先は File.userDirectory プロパティの示すディレクトリと同じ場所です。ユーザーディレクトリは、アプリケーションに固有の場所にあります。

次のコードでは、ユーザーのデスクトップディレクトリに格納されているファイルおよびディレクトリの一覧を出力します。 import flash.filesystem.File; var desktop:File = File.desktopDirectory; var files:Array = desktop.getDirectoryListing(); for (var i:uint = 0; i < files.length; i++) { trace(files[i].nativePath); }
documentsDirectory ユーザーのドキュメントディレクトリです。flash.filesystem:File ユーザーのドキュメントディレクトリです。

Windows では、これは My Documents ディレクトリ(例えば C:\Documents and Settings\userName\My Documents)です。Mac OS のデフォルトの位置は /Users/userName/Documents です。Linux のデフォルトの位置は /home/userName/Documents(英語システムの場合)で、プロパティは xdg-user-dirs 設定に従います。

documentsDirectory プロパティを使用すると、異なるプラットフォームでも動作する方法でドキュメントディレクトリを参照できます。ドキュメントディレクトリを参照するように File オブジェクトを設定する際、nativePath または url プロパティを直接に使用すると、そのパスが有効であるプラットフォーム上でしか動作しないコードになります。

オペレーティングシステムがドキュメントディレクトリをサポートしていない場合、ファイルシステムの適切なディレクトリが代わりに使用されます。

テレビ用 AIR デバイスには、ユーザーのドキュメントディレクトリという概念がありません。このため、documentsDirectory プロパティの参照先は File.userDirectory プロパティの示すディレクトリと同じ場所です。ユーザーディレクトリは、アプリケーションに固有の場所にあります。

次のコードでは、File.documentsDirectory プロパティと File.createDirectory() メソッドを使用して、ユーザーのドキュメントディレクトリに "AIR Test" という名前のディレクトリが確実に存在するようにしています。 import flash.filesystem.File; var directory:File = File.documentsDirectory; directory = directory.resolvePath("AIR Test"); File.createDirectory(directory); trace(directory.exists); // true
downloaded 参照先のファイルまたはディレクトリが、インターネット経由でダウンロード済みであるかどうかを示します。Boolean 参照先のファイルまたはディレクトリが、インターネット経由でダウンロード済みであるかどうかを示します。

このプロパティは、ファイルにダウンロード済みのフラグを付けられるオペレーティングシステム(以下参照)でのみ意味を持ちます。

  • Windows XP Service Pack 2 以降および Windows Vista
  • Mac OS 10.5 以降

ファイルにダウンロード済みのフラグが付かないシステム(Linux など)では、このプロパティは意味を持ちません(false に設定されます)。

openWithDefaultApplication()
exists 参照先のファイルまたはディレクトリが存在するかどうかを示します。Boolean 参照先のファイルまたはディレクトリが存在するかどうかを示します。値は、File オブジェクトが既存のファイルまたはディレクトリを指している場合は true、それ以外の場合は false です。 次のコードでは、一時ファイルを作成し、このファイルを削除します。次に、File.exists プロパティを使用して、このファイルが存在するかどうかを確認します。 import flash.filesystem.*; var temp:File = File.createTempFile(); trace(temp.exists); // true temp.deleteFile(); trace(temp.exists); // false icon ファイルに対して定義されたアイコンを格納している Icon オブジェクトです。flash.desktop:Icon ファイルに対して定義されたアイコンを格納している Icon オブジェクトです。Icon オブジェクトは、様々なアイコン状態に対応する BitmapData オブジェクトの配列です。Linux では、Icon オブジェクトにアイコンはありません。Android では、icon プロパティは null です。 次のコードは、icon 配列内で高さが最大のイメージを探し、Bitmap オブジェクトをそのイメージに設定する方法を示しています。 import flash.filesystem.File; import flash.display.*; var directory:File = File.documentsDirectory; var bitmaps:Array = directory.icon.bitmaps; var bmpData:BitmapData = new BitmapData(1, 1); for (var i:uint = 0; i < bitmaps.length; i++) { if (bitmaps[i].height > bmpData.height) { bmpData = directory.icon.bitmaps[i]; } } var iconBmp:Bitmap = new Bitmap(bmpData); この Bitmap オブジェクトを表示オブジェクトコンテナ(Sprite オブジェクト、Flex UIComponent オブジェクトなど)の子として追加できます。 isDirectory 参照先がディレクトリであるかどうかを示します。Boolean 参照先がディレクトリであるかどうかを示します。値は、File オブジェクトの参照先がディレクトリの場合は true、それ以外の場合は false です。 次のコードでは、ユーザーディレクトリ内のファイルおよびディレクトリを参照している File オブジェクトの配列を作成し、isDirectory プロパティを使用して、(ファイルではなく)ディレクトリを参照している File オブジェクトだけを列挙します。 import flash.filesystem.*; var userDirFiles:Array = File.userDirectory.getDirectoryListing(); for (var i:uint = 0; i < userDirFiles.length; i++) { if (userDirFiles[i].isDirectory) { trace(userDirFiles[i].nativePath); } } isHidden 参照先のファイルまたはディレクトリが "非表示" かどうかを示します。値は、参照先のファイルまたはディレクトリが非表示の場合は true、それ以外の場合は false です。Boolean 参照先のファイルまたはディレクトリが "非表示" かどうかを示します。値は、参照先のファイルまたはディレクトリが非表示の場合は true、それ以外の場合は false です。 次のコードでは、ユーザーディレクトリ内のファイルおよびディレクトリを参照している File オブジェクトの配列を作成し、isHidden プロパティを使用して非表示のファイルおよびディレクトリを列挙します。 import flash.filesystem.*; var userDirFiles:Array = File.userDirectory.getDirectoryListing(); for (var i:uint = 0; i < userDirFiles.length; i++) { if (userDirFiles[i].isHidden) { trace(userDirFiles[i].nativePath); } } isPackage 参照先のディレクトリがパッケージであるかどうかを示します。Boolean 参照先のディレクトリがパッケージであるかどうかを示します。

値は、参照先のディレクトリがパッケージである場合は true、それ以外の場合は false です。File クラスでは、パッケージを直接作成することはできません。

  • Macintosh では、ディレクトリをパッケージとして指定して、Finder にディレクトリではなく単一のファイルとして表示することができます。このプロパティは、参照先のディレクトリがパッケージである場合は true、そのファイルがディレクトリでない場合、存在しない場合、またはパッケージでない場合は false に設定されます。
  • 他のオペレーティングシステムでは、このプロパティは常に false に設定されます。
isSymbolicLink 参照がシンボリックリンクであるかどうかを示します。Boolean 参照がシンボリックリンクであるかどうかを示します。

値は、File オブジェクトがシンボリックリンクの場合は true、それ以外の場合は false です。File クラスでは、シンボリックリンクを直接作成することはできません。

シンボリックリンクを使用すると、ファイルが、ディスク上の別のファイルまたはディレクトリを参照できるようになります。シンボリックリンクは、エイリアス(Macintosh)およびショートカット(Windows)に似ていますが、同じではありません。エイリアスまたはショートカットは常に(ディレクトリではなく)ファイルとして報告され、エイリアスまたはショートカットの読み取りや書き込みを行っても、そのエイリアスまたはショートカットの参照先である元のファイルまたはディレクトリが影響を受けることはありません。これに対し、シンボリックリンクは、通常、参照先のファイルまたはディレクトリと同じように動作します。シンボリックリンクは、ファイルまたはディレクトリとして報告され、シンボリックリンクの読み取りや書き込みを行うと、シンボリックリンク自体ではなく、参照先のファイルまたはディレクトリが影響を受けます。ただし、シンボリックリンクを削除すると、リンクの対象ではなくリンクが削除されます。

シンボリックリンクは Mac® OS®、Linux、および Windows® Vista® でサポートされています。さらに、Windows では、NTFS ファイルシステムで使用される接続点を参照している File オブジェクトの isSymbolicLink プロパティは true に設定されます。

lineEnding ホストオペレーティングシステムで使用される行終了文字です。String ホストオペレーティングシステムで使用される行終了文字です。

Macintosh OS および Linux では、これは改行文字(16 進の文字コード 0x0A)です。Windows では、復帰文字(16 進の文字コード 0x0A)の後に改行文字(16 進の文字コード 0x0A) が続いたものです。

次のコードでは、ストリング(str)をテキストファイルに書き込み、File.lineEnding 静的プロパティを使用して、すべての改行文字(コードでは正規表現 /\n/g で表現)を、ホストオペレーティングシステムで推奨される行終了文字に置き換えます。 import flash.filesystem.*; var str:String = "Hello\n" + "World\n"; str = str.replace(/\n/g, File.lineEnding); var file:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeUTF(str); fileStream.close();
nativePath ホストオペレーティングシステムの表現形式に従った完全パスです。Stringpath のシンタックスが無効です。 ArgumentErrorArgumentError呼び出し元がアプリケーションのセキュリティサンドボックス内ではありません。 SecurityErrorSecurityError ホストオペレーティングシステムの表現形式に従った完全パスです。Macintosh OS および Linux では、パス区切り文字としてスラッシュ(/)文字を使用します。ただし、Windows では、nativePath プロパティでパス区切り文字としてスラッシュ(/)を使用するか円記号(¥)を使用するかを設定できます。AIR では、スラッシュが適切な円記号(¥)文字に自動で変換されます。

直接に nativePath プロパティを設定するコードを記述することは可能ですが、特定プラットフォーム上でしか動作しないコードになる可能性があることに注意してください。例えば、"C:\\Documents and Settings\\bob\\Desktop" のようなネイティブパスは Windows 上でのみ有効です。それよりも、共通的に使用されるディレクトリを次の静的プロパティで参照するほうがはるかに望ましく、どのプラットフォームでも有効なコードを作成できます。

  • File.applicationDirectory
  • File.applicationStorageDirectory
  • File.desktopDirectory
  • File.documentsDirectory
  • File.userDirectory

resolvePath() メソッドを使用すると、上記の各種ディレクトリからの相対パスを取得できます。

一部の Flex API(SWFLoader クラスの source プロパティなど)では、URL(File オブジェクトの url プロパティ)を使用します。ネイティブパス(nativePath プロパティ)は使用しません。

次のコードでは、File オブジェクトの nativePath プロパティと url プロパティの違いを表示します。コメントは、Windows コンピューターでの結果の例を示しています。 import flash.filesystem.File; var docs:File = File.documentsDirectory; trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
parent この File オブジェクトによって参照されているファイルまたはディレクトリを格納しているディレクトリです。flash.filesystem:File この File オブジェクトによって参照されているファイルまたはディレクトリを格納しているディレクトリです。

parent プロパティは、参照先のファイルまたはディレクトリが存在しない場合でも、それを格納しているディレクトリを指す File オブジェクトを返します(そのディレクトリが存在しなくても返します)。

このプロパティは、resolvePath("..") の戻り値と同じですが、ルートディレクトリの親が null である点が異なります。

次のコードでは、parent プロパティを使用して、一時ファイルを格納しているディレクトリを表示します。 import flash.filesystem.File; var tempFile:File = File.createTempDirectory(); trace(tempFile.parent.nativePath); tempFile.deleteFile();
separator ホストオペレーティングシステムのパスコンポーネントの区切り文字です。String ホストオペレーティングシステムのパスコンポーネントの区切り文字です。

Macintosh OS および Linux では、スラッシュ(/)文字です。 Windows では、円記号(\)です。

注意:ストリングリテラル内で円記号文字を使用する場合は、円記号を 2 回入力してください(例:"directory\\file.ext")。ストリングリテラル内では、2 つの円記号によってストリング内の単一の円記号を表します。

次のコードでは、getRelativePath() メソッドを使用してディレクトリとファイルとの間の相対パスを取得しています。このコードでは、File.separator 静的プロパティを使用して、パス内のスラッシュ(/)文字をオペレーティングシステムによって使用される区切り文字に置き換えます。区切り文字は、Windows では円記号(\)で、他のオペレーティング システムではスラッシュ文字です。 import flash.filesystem.File; var directory:File = File.documentsDirectory.resolvePath("Apollo Test"); var file:File = File.documentsDirectory.resolvePath("Apollo Test/employees/bob/test.txt"); var relativePath:String = directory.getRelativePath(file); // employees/bob/test.txt relativePath = relativePath.replace(/\//g, File.separator); trace(relativePath); この例の replace() メソッドでは、すべてのスラッシュ文字に一致させるために正規表現 /\//g を使用しています。
spaceAvailable この File の場所で使用可能な領域(バイト)。Number この File の場所で使用可能な領域(バイト)。

File オブジェクトがディレクトリを参照する場合、spaceAvailable はファイルで使用できるディレクトリの領域を示します。File オブジェクトがファイルを参照する場合、spaceAvailable はファイルを拡張できる領域を示します。ファイルの場所が存在しない場合、spaceAvailable は 0 に設定されます。File オブジェクトがシンボリックリンクを参照する場合、spaceAvailable はシンボリックリンクが参照する位置で使用可能な領域を示します。

一般的に、ディレクトリまたはファイルで使用可能な領域は、ディレクトリまたはファイルを含むボリュームで使用可能な領域と同じです。ただし、使用可能な領域では、割り当ておよびディレクトリごとの制限が考慮される場合があります。

一般に、ボリュームにファイルまたはディレクトリを追加すると、ファイルの実際のサイズまたはディレクトリの内容のサイズよりも大きな領域が必要になります。例えば、オペレーティングシステムでは、インデックス情報を保存するための追加領域が必要になる場合があります。また、必要なディスクセクタにより追加領域が使用される場合があります。さらに、使用可能な領域は動的に変化します。したがって、報告されたすべての領域がファイル記憶域のために割り当てられることを期待するのは不可能です。

systemCharset ホストオペレーティングシステムで使用されるデフォルトのエンコーディングです。String ホストオペレーティングシステムで使用されるデフォルトのエンコーディングです。

有効な値は、"windows-1252""shift-jis""cn-gb""iso-8859-1" などです。完全な一覧については、「サポートされている文字セット」を参照してください。

この値は、FileStream クラスの readMultiByte() メソッドおよび writeMultiByte() メソッドで使用できます。

次のコードでは、ファイル(ユーザーのドキュメントディレクトリ内の AIR Test サブディレクトリにある test.txt という名前のファイル)を開き、File.systemCharset 静的プロパティを charSet パラメーターとして使用して、FileStream オブジェクトの readMultiByte() メソッドを呼び出します。 import flash.filesystem.File; var file:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.READ); var str:String = fileStream.readMultiByte(file.size, File.systemCharset); trace(str);
FileStream.readMultiByte()FileStream.writeMultiByte()
url このファイルパスの URL です。StringURL シンタックスが無効です。 ArgumentErrorArgumentError呼び出し元がアプリケーションのセキュリティサンドボックス内ではありません。 SecurityErrorSecurityError このファイルパスの URL です。

この URL スキームは、アプリケーションの記憶領域ディレクトリ内のパスへの参照である場合は「app-storage」、アプリケーションディレクトリ内のパスへの参照である場合は「app」、それ以外の場合は「file」です。

"%20"ではなく)空白文字を使用して、url プロパティに値を代入できます。この場合、AIR によってストリングが自動的にエンコードされます(例えば、スペースが "%20" に変換されます)。

次のコードでは、File オブジェクトの nativePath プロパティと url プロパティの違いを表示します。コメントは、Windows コンピューターでの結果の例を示しています。 import flash.filesystem.File; var docs:File = File.documentsDirectory; trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
nativePathdecodeURI() グローバル関数decodeURIComponent() グローバル関数decodeURI() グローバル関数decodeURIComponent() グローバル関数
userDirectory ユーザーのディレクトリです。flash.filesystem:File ユーザーのディレクトリです。

Windows では、これは "My Documents" ディレクトリの親(例えば C:¥Documents and Settings¥userName)です。Macintosh では、/Users/userName です。 Linux では、/home/userName です。

userDirectory プロパティを使用すると、異なるプラットフォームでも動作する方法でユーザーディレクトリを参照できます。File オブジェクトの nativePath または url プロパティを直接に設定するコードは、そのパスが有効であるプラットフォーム上でしか動作しません。

オペレーティングシステムがユーザーディレクトリをサポートしていない場合、ファイルシステムの適切なディレクトリが代わりに使用されます。

テレビ用 AIR デバイスでは、userDirectory プロパティはアプリケーションに固有のユーザーディレクトリを示します。

次のコードでは、ユーザーディレクトリのルートレベルに格納されているファイルおよびディレクトリの一覧を出力します。 import flash.filesystem.File; var files:Array = File.userDirectory.listDirectory(); for (var i:uint = 0; i < files.length; i++) { trace(files[i].nativePath); }
StorageVolume StorageVolume オブジェクトには、マスストレージボリュームを定義するプロパティが用意されています。Object StorageVolume オブジェクトには、マスストレージボリュームを定義するプロパティが用意されています。このクラスは、次の 2 つの方法で使用できます。
  • StorageVolumeChangeEvent オブジェクトの storageVolume プロパティは StorageVolume オブジェクトです。このオブジェクトは、マウントまたはマウント解除されたストレージボリュームを表します。
  • StorageVolumeInfo.storageVolumeInfo.getStorageVolumes() メソッドは、StorageVolume オブジェクトのベクターを返します。これらの StorageVolume オブジェクトはそれぞれ、マウントされたストレージボリュームを表します。
次のコードでは、マウントされた各ストレージボリュームのプロパティを一覧で表示します。 package { import flash.display.Sprite; import flash.filesystem.StorageVolume; import flash.filesystem.StorageVolumeInfo; public class StorageVolumeExample extends Sprite { public function StorageVolumeExample() { var volumes:Vector.<StorageVolume> = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { var volume:StorageVolume = volumes[i]; trace("nativePath:", volume.rootDirectory.nativePath); trace("fileSystemType:", volume.fileSystemType); trace("isRemovable:", volume.isRemovable); trace("isWritable:", volume.isWritable); trace("drive:", volume.drive); trace("name:", volume.name); trace("________________________________________________________"); } } } } 次のコードでは、マウントまたはマウント解除される各ストレージボリュームのプロパティを一覧で表示します。StorageVolumeChangeEvent の storageVolume プロパティは、storageVolumeMount イベントに対してのみ設定され、storageVolumeUnmount イベントでは null になります。 package { import flash.display.Sprite; import flash.events.StorageVolumeChangeEvent; import flash.filesystem.StorageVolume; import flash.filesystem.StorageVolumeInfo; public class StorageVolumeChangeEventExample extends Sprite { public function StorageVolumeChangeEventExample() { StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, mountEventHandler); StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, unmountEventHandler); } public function mountEventHandler(event:StorageVolumeChangeEvent):void { var volume:StorageVolume = event.storageVolume; trace("VOLUME MOUNTED:"); trace("nativePath:", event.rootDirectory.nativePath); trace("fileSystemType:", volume.fileSystemType); trace("isRemovable:", volume.isRemovable); trace("isWritable:", volume.isWritable); trace("drive:", volume.drive); trace("name:", volume.name); trace(); } public function unmountEventHandler(event:StorageVolumeChangeEvent):void { trace("VOLUME UNMOUNTED:"); trace("nativePath:", event.rootDirectory.nativePath); trace(); } } }
flash.filesystem.StorageVolumeInfo.getStorageVolumes()flash.events.StorageVolumeChangeEvent.storageVolumeStorageVolume コンストラクター関数です。rootDirPathflash.filesystem:FilenameStringwritableBooleanremovableBooleanfileSysTypeStringdriveString コンストラクター関数です。一般に、このコンストラクター関数を直接呼び出して、新しい StorageVolume オブジェクトを作成することはありません。代わりに、StorageVolumeChangeEvent オブジェクトの storageVolume プロパティにアクセスするか、StorageVolumeInfo.storageVolumeInfo.getStorageVolumes を呼び出して、StorageVolume オブジェクトを参照します。 drive Windows のボリュームドライブ文字です。String Windows のボリュームドライブ文字です。他のプラットフォーム上では、このプロパティは null に設定されます。 fileSystemType ストレージボリュームのファイルシステムのタイプ(「FAT」、「NTFS」、「HFS」、「UFS」など)String ストレージボリュームのファイルシステムのタイプ(「FAT」「NTFS」「HFS」「UFS」など) 次のコードでは、マウントされた各ストレージボリュームのルートディレクトリへのネイティブパスおよびファイルシステムのタイプを一覧で表示します。 var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { trace(volumes[i].rootDirectory.nativePath, "(" + volumes[i].fileSystemType + ")"); } isRemovable オペレーティングシステムがストレージボリュームを取り外し可能(true)と見なすか、取り外し不可(false)と見なすかを示します。Boolean オペレーティングシステムがストレージボリュームを取り外し可能(true)と見なすか、取り外し不可(false)と見なすかを示します。

次の表に、さまざまなタイプのデバイスについて、StorageVolume.isRemovable 値を一覧で示します。

デバイスのタイプMac OSWindowsLinuxCD/DVD(内蔵)truetruetrueUSB フラッシュドライブtruetruetrueUSB ハードドライブfalsefalsetrueFireWire ハードドライブfalsefalsetrue共有ボリュームtruefalse- 1ネットワークドライブfalsefalsefalseストレージカードリーダー(空)- 2false- 2ストレージカードリーダー(SD/CF カード付き)truetruetrue

1 Linux には共有ボリュームという概念がありません。

2 Windows では、空のカードリーダーは非リムーバブルデバイスとして表示されます。Mac OS および Linux では、空のカードリーダーはストレージボリュームとして表示されません。

次のコードでは、削除不可のストレージボリュームのリスト、削除可のストレージボリュームの順に出力します。 var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); trace("Non-removeable volumes:"); for (var i:int = 0; i < volumes.length; i++) { if (!volumes[i].isRemovable) { trace(volumes[i].rootDirectory.nativePath); } } trace("\nRemoveable volumes:"); for (i = 0; i < volumes.length; i++) { if (volumes[i].isRemovable) { trace(volumes[i].rootDirectory.nativePath); } }
isWritable ボリュームの書き込み可(true) / 不可(false)を示します。Boolean ボリュームの書き込み可(true) / 不可(false)を示します。

注意:StorageVolume オブジェクトの rootDirectory.spaceAvailble プロパティを呼び出して、ボリューム上の使用可能な領域を確認できます。

次のコードでは、書き込み可能なストレージボリュームとボリュームごとに使用可能な領域のリストを出力します。 var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { if(volumes[i].isWritable) { trace(volumes[i].rootDirectory.nativePath, volumes[i].rootDirectory.spaceAvailable); } }
flash.fileSystem.File.spaceAvailable
name ボリュームの名前です。String ボリュームの名前です。名前がない場合、このプロパティは null に設定されます。 次のコードでは、マウントされた各ストレージボリュームのルートディレクトリへのネイティブパスおよびファイルシステム名(存在する場合)を一覧で表示します。 var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { var name:String = new String(); if (volumes[i].name) { name = "(" + volumes[i].name + ")"; } trace(volumes[i].rootDirectory.nativePath, name); } rootDirectory ボリュームのルートディレクトリに対応する File オブジェクトです。flash.filesystem:File ボリュームのルートディレクトリに対応する File オブジェクトです。 次のコードでは、マウントされた各ストレージボリュームのルートディレクトリへのネイティブパスを一覧で表示します。 var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { trace(volumes[i].rootDirectory.nativePath); }