前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

15.2. ファイルを操作するためのクラス

SFXFile クラスは、ファイルの作成、移動、削除、情報の取得などの処理をするためのクラスです。 ファイルのデータの読み書きには、ストリームを利用します。

[Caution] mif ファイルの設定

SFXFile クラスを利用する場合は、 mif ファイルの特権レベル設定で「ファイル」の項目をオンにする必要があります。

[Note] エラー処理

以下の関数はすべてエラー値 ( SFCError 型 ) を返します。

例 15.1. ファイル名の変更 ( ファイルの移動 )

SFXFile::Rename(SFXPath("/dir1/data.txt"), SFXPath("/dir2/data.dat"));

引数にファイルパスを指定する関数はすべて SFXPath を使います。

例 15.2. ファイルの削除

SFXFile::Remove(SFXPath("/dir1/data.txt"));

例 15.3. ファイルの存在判定

Bool b;

// Exists 関数の戻り値は SFCError 型
// b: Exists 関数によりファイルが存在するか否か設定される
SFXFile::Exists(SFXPath("/dir1/data.txt"), &b);

if (b) {
    // ファイルが存在するとき

}

例 15.4. ファイルサイズの取得

UInt32 size;

SFXFile::GetSize(SFXPath("/dir1/data.txt"), &size); // size: ファイルサイズが設定される

例 15.5. ファイル作成日時の取得

SFXDate date; // 日付クラス

// date: ファイルの作成日時が設定される
SFXFile::GetCreateDate(SFXPath("/dir1/data.txt"), &date);

例 15.6. ファイルシステムの総容量と空き容量の取得

UInt32 total_space;
UInt32 free_space;

SFXFile::DeviceTotalSpace(&total_space); // total_space: ファイルシステムの総容量が設定される
SFXFile::DeviceFreeSpace(&free_space);   // free_space: ファイルシステムの空き容量が設定される

例 15.7. ファイルが読み込み専用であるかの判定

Bool b;

// IsReadOnly 関数の戻り値は SFCError 型
// b: IsReadOnly 関数によりファイルが読み込み専用であるか否か設定される
SFXFile::IsReadOnly(SFXPath("/dir1/data.txt"), &b);

if (b) {
    // ファイルが読み込み専用の場合

}

例 15.8. テンポラリファイルパスの取得

SFXPath path;
SFXPath parentPath;
SFCError error;

parentPath.Set(SFXAnsiString("/"));

if ((error = SFXFile::GetTemporaryPath(parentPath, &path)) == SFERR_NO_ERROR) {

    // path: "/sfx7182CBD4.tmp" のようなファイルパスが設定される
    ...

}
[Note] 注意
一時的なファイルを作成するとき、既存のものと重複しないファイルパスを取得します。

例 15.9. 一意なファイルパスの取得

SFXPath path;
SFXPath parentPath;
SFCError error;

parentPath.Set(SFXAnsiString("/"));

if ((error = SFXFile::GetUniquePath(parentPath, "data", ".txt", &path)) == SFERR_NO_ERROR) {

    // path: "/data829AE714.txt" のようなファイルパスが設定される
    ...
}
[Note] 注意

既存のものと重複しないファイルパスを取得します。