BREW プログラミング入門(8)
|
|
上記コードのRmDirRecursive関数を使用すると、空でないディレクトリも削除することができます。上記コードでは "target_dir" ディレクトリを削除しています。もしも間違えて "" と指定して呼び出したら大変です。アプリの実体と同じディレクトリ内の全てのファイル(削除可能なものだけ)が削除されてしまいます。実験するときは注意しましょう。
※上記コードをエミュレータ上で動作させる場合、"target_dir" ディレクトリをWindowsのエクスプローラなどで開いていると正常に削除できない場合があります。
ファイルを操作してみる
ここまではディレクトリの操作の方法を解説してきました。それでは次に、IFileインタフェースを使用したファイルの操作の方法について解説します。
IFileインタフェースには以下のようなAPIが存在します。ファイルの操作は、これらのAPIを使用して行います。
関数名 | 解説 |
IFILE_GetInfo | ファイルの情報を取得します。 |
IFILE_GetInfoEx | ファイルの拡張情報を取得します。 |
IFILE_Read | ファイルからデータを読み込みます。 |
IFILE_Readable | ファイルが読み込み可能になるまで読み込みをペンディングします。 |
IFILE_Write | ファイルへデータを書き出します。 |
IFILE_Cancel | IFILE_Readable 関数によって登録されたコールバックをキャンセルします。 |
IFILE_Seek | ファイルのアクセス位置を変更します。 |
IFILE_Truncate | ファイルを切り詰めます。 |
IFILE_SetCacheSize | IFile インタフェースの内部バッファリング用のキャッシュサイズを設定します。 |
※上記表は、頻繁に使用されるAPIしか列挙していません。より、詳しい情報はBREW APIリファレンスを参照してください。
ファイルのオープンとクローズ
BREWでファイルの内容を読み書きするためにファイルをオープンするには、IFileMgrインタフェースのIFILEMGR_OpenFile関数を使用します。また、オープンされたファイルをクローズするには、IFileインタフェースのIFILE_Release関数を使用します。IFILEMGR_Close関数やIFILE_Close関数などは存在しません。では、以下に新しいファイル作成した後、オープンしてクローズするコードを示します。
|
※上記コードは "sample.txt" という名前のファイルが既に存在する場合は正常にファイルをオープンすることができません。詳細は以下のオープンモードの表を参照してください。
ここでIFILEMGR_OpenFile関数の第3引数はファイルをオープンするときのモードを表します。BREWで使用できるオープンモードには以下のようなものがあります。
モード | 解説 |
_OFM_READ | ファイルを読み込みモードでオープンする。ファイルが存在しない場合は作成しない。 |
_OFM_READWRITE | ファイルを読み込み / 書き込みモードでオープンする。ファイルが存在しない場合は作成しない。 |
_OFM_APPEND | ファイルを読み込み / 書き込みモードでオープンするが、あらかじめアクセス位置をファイルの末尾に移動させる。ファイルが存在しない場合は作成しない。 |
_OFM_CREATE | ファイルを読み込み / 書き込みモードで作成する。既にファイルが存在する場合はファイルがオープンされることはなく、エラーとなる。 |
では、ファイルが存在しないときはファイルを作成してオープンし、ファイルが存在するときはファイルをオープンできるように、コードを改良してみましょう。
|
まず、ファイルを読み書きモードでオープンし、失敗した場合、作成モードでオープンを試みるように修正しました。より、安全なファイル処理を行いたい場合は、IFILEMGR_GetLastError関数を使用して具体的なエラー内容に応じて処理を変更します。
ファイルの情報を取得してみる
BREW にはディレクトリやファイルの情報を取得するためのAPIがあります。それらのAPIはFileInfo構造体やAEEFileInfoEx構造体に情報を詰め込んで結果を返してくれます。FileInfo構造体はファイルの属性やファイルが作成された日時、ファイルサイズ、ファイル名などが格納されています。また、AEEFileInfoEx構造体はそれらの情報に加えて、ファイルの説明やファイルの所有者などの情報が格納されています。普通FileInfo構造体を使用する事が多いと思いますので、ここではFileInfo構造体を使用したコードを示します。
|
いちいちファイルをオープンしなくても情報を取得することができます。
|
[堀口淳史, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.
最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!