前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXDirectory
ディレクトリを操作するためのクラスです。
#include <SFXDirectory.h.hpp>
class SFXDirectory;
SFMTYPEDEFCLASS(SFXDirectory)

解説

SFXDirectory クラスは、 ディレクトリの作成や削除、ディレクトリ情報の取得、 ディレクトリ内のファイルやディレクトリの巡回、 テンポラリディレクトリの作成などの処理を行うためのクラスです。

参照

SFXFile | SFXPath | ディレクトリ

メンバ

パブリック関数
static
SFCError
Create( SFXPathConstRef path , Bool force = false )
ディレクトリを作成します。
static
SFCError
DeviceFreeSpace( UInt32Ptr result )
ファイルシステムの合計空き容量を取得します。[単位: バイト]
static
SFCError
DeviceTotalSpace( UInt32Ptr result )
ファイルシステムの合計容量を取得します。[単位: バイト]
static
SFCError
Exists( SFXPathConstRef path , BoolPtr result )
ディレクトリが存在するか調べます。
static
SFCError
GetCreateDate( SFXPathConstRef path , SFXDatePtr result )
ディレクトリの作成日時を取得します。
static
SFCError
GetDirectoryEnumerator( SFXPathConstRef path , EnumeratorPtr result )
ディレクトリ内のディレクトリ列挙子を取得します。
static
SFCError
GetFileEnumerator( SFXPathConstRef path , EnumeratorPtr result )
ディレクトリ内のファイル列挙子を取得します。
static
SFCError
GetTemporaryPath( SFXPathConstRef path , SFXPathPtr result )
既存のディレクトリパスと重複しないテンポラリディレクトリのパスを取得します。
static
SFCError
GetUniquePath( SFXPathConstRef path , SFXAnsiStringConstRef prefix , SFXAnsiStringConstRef suffix , SFXPathPtr result )
既存のディレクトリパスと重複しないディレクトリパスを取得します。
static
SFCError
IsReadOnly( SFXPathConstRef path , BoolPtr result )
ディレクトリが読み込み専用であるか判定します。
static
SFCError
IsSystem( SFXPathConstRef path , BoolPtr result )
ディレクトリがシステムディレクトリであるか判定します。
static
SFCError
Remove( SFXPathConstRef path , Bool force = false )
ディレクトリを削除します。
Enumerator
列挙子を表すクラスです。

SFXDirectory::Create
ディレクトリを作成します。
[ public, static ]
SFCError Create(
    SFXPathConstRef path   // 作成するディレクトリのパス
    Bool force = false     // 強制的に作成するかどうか
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • path 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、path 引数に指定したディレクトリを作成します。

引数 force を true にすると、指定したパスに存在しないディレクトリも作成します。

[Note] 注意

この関数は、内部で SFBFileMgr::MkDir 関数を呼び出します。

使用例

// ディレクトリを強制的に作成する
// ※ dir1 が存在しないとき、dir1 は自動的に作成される
SFXDirectory::Create(SFXPath("/dir1/dir2/"), true);

参照

SFBFileMgr::MkDir | SFXDirectory::Remove | BREW API IFILEMGR_MkDir | BREW API IFILEMGR_GetLastError


SFXDirectory::DeviceFreeSpace
ファイルシステムの合計空き容量を取得します。[単位: バイト]
[ public, static ]
SFCError DeviceFreeSpace(
    UInt32Ptr result   // ファイルシステムの合計空き容量を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、ファイルシステムの合計空き容量を取得します。

取得したファイルシステムの合計空き容量は、result 引数に返ります。[単位: バイト]

[Note] 注意

この関数は、内部で SFBFileMgr::GetFreeSpace 関数を呼び出します。

[Caution] 注意

シミュレータでファイルシステムの合計空き容量が最大 32 ビット整数値よりも大きい場合は、 最大 32 ビット整数値 (0xFFFFFFFF) が返されます。

使用例

UInt32 space;

SFXDirectory::DeviceFreeSpace(&space); // space に現在使用可能な空き容量を取得する

参照

SFBFileMgr::GetFreeSpace | SFXDirectory::DeviceTotalSpace | BREW API IFILE_IFILEMGR_GetFreeSpace | BREW API IFILEMGR_GetLastError


SFXDirectory::DeviceTotalSpace
ファイルシステムの合計容量を取得します。[単位: バイト]
[ public, static ]
SFCError DeviceTotalSpace(
    UInt32Ptr result   // 合計容量を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、ファイルシステムの合計容量を取得します。

取得した合計容量は、result 引数に返ります。[単位: バイト]

[Note] 注意

この関数は、内部で SFBFileMgr::GetFreeSpace 関数を呼び出します。

[Caution] 注意

シミュレータでファイルシステムの合計容量が最大 32 ビット整数値よりも大きい場合は、 最大 32 ビット整数値 (0xFFFFFFFF) が返されます。

使用例

UInt32 space;

SFXDirectory::DeviceTotalSpace(&space); // space にファイルシステムの合計容量を取得する

参照

SFBFileMgr::GetFreeSpace | SFXDirectory::DeviceFreeSpace | BREW API IFILE_IFILEMGR_GetFreeSpace | BREW API IFILEMGR_GetLastError


SFXDirectory::Exists
ディレクトリが存在するか調べます。
[ public, static ]
SFCError Exists(
    SFXPathConstRef path   // 存在を調べるディレクトリのパス
    BoolPtr result         // 結果を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、path 引数に指定したディレクトリが存在するか判定します。 判定結果は、result 引数に返ります。

[Note] 注意

この関数は、内部で SFBFileMgr::Test 関数を呼び出します。

使用例

Bool b;

// Exists 関数による判定結果は b 変数に格納される
SFXDirectory::Exists(SFXPath("/dir1/"), &b);

if (b) {
    // ディレクトリが存在するとき

}

参照

SFBFileMgr::Test | SFXDirectory::IsReadOnly | SFXDirectory::IsSystem | BREW API IFILEMGR_Test


SFXDirectory::GetCreateDate
ディレクトリの作成日時を取得します。
[ public, static ]
SFCError GetCreateDate(
    SFXPathConstRef path   // ディレクトリのパス
    SFXDatePtr result      // 作成日時を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、path 引数に指定したディレクトリの作成日時を取得します。

取得したディレクトリ作成日時は、result 引数に返ります。

[Note] 注意

この関数は、内部で SFBFileMgr::GetInfo 関数を呼び出します。

使用例

SFXDate date; // 日付クラス

// ディレクトリの作成日時を取得する
SFXDirectory::GetCreateDate(SFXPath("/dir1/"), &date);

参照

SFBFileMgr::GetInfo | BREW API IFILE_IFILEMGR_GetInfo | BREW API IFILEMGR_GetLastError


SFXDirectory::GetDirectoryEnumerator
ディレクトリ内のディレクトリ列挙子を取得します。
[ public, static ]
SFCError GetDirectoryEnumerator(
    SFXPathConstRef path   // ディレクトリのパス
    EnumeratorPtr result   // 列挙子を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、ディレクトリ内のディレクトリ列挙子を取得します。 ディレクトリ列挙子は、result 引数に返ります。

[Note] 注意

この関数は、内部で SFBFileMgr::EnumInit 関数を呼び出します。

使用例

以下は、ディレクトリ内の各ディレクトリを取得するコードです。

SFXPath path;
SFXDirectory::Enumerator etor;  

// ディレクトリ列挙子を取得する
SFXDirectory::GetDirectoryEnumerator(SFXPath("/dir1/"), &etor);

// ディレクトリを列挙する
while (etor.HasNext()) {
    // "/dir1" 内のディレクトリパスを順に取得する
    path = etor.GetNext();
    // ログにパス名を表示する
    TRACE("dir = %s", path.Get().GetCString()); 
}

参照

SFXDirectory::GetFileEnumerator | SFXDirectory::Enumerator | BREW API IFILEMGR_EnumInit


SFXDirectory::GetFileEnumerator
ディレクトリ内のファイル列挙子を取得します。
[ public, static ]
SFCError GetFileEnumerator(
    SFXPathConstRef path   // ディレクトリのパス
    EnumeratorPtr result   // 列挙子を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリであるとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、ディレクトリ内のファイル列挙子を取得します。 ファイル列挙子は、result 引数に返ります。

[Note] 注意

この関数は、内部で SFBFileMgr::EnumInit 関数を呼び出します。

使用例

以下は、ディレクトリ内の各ファイルを取得するコードです。

SFXPath path;
SFXDirectory::Enumerator etor;  

// ファイル列挙子の取得
SFXDirectory::GetFileEnumerator(SFXPath("/dir1/"), &etor);

// ファイルを列挙する
while (etor.HasNext()) {
    // "/dir1" 内のファイルパスを順に取得する
    path = etor.GetNext();                       
    // ログにパス名を表示する
    TRACE("file = %s", path.Get().GetCString()); 
}

参照

SFXDirectory::GetDirectoryEnumerator | SFXDirectory::Enumerator | BREW API IFILEMGR_EnumInit


SFXDirectory::GetTemporaryPath
既存のディレクトリパスと重複しないテンポラリディレクトリのパスを取得します。
[ public, static ]
SFCError GetTemporaryPath(
    SFXPathConstRef path   // テンポラリディレクトリを作成するディレクトリのパス
    SFXPathPtr result      // テンポラリディレクトリパスへのポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、既存のディレクトリパスと重複しないテンポラリディレクトリのパスを取得します。

[Note] 注意
この関数は、内部的に接頭辞 "sfx" を prefix 引数に、 接尾辞 "dir" を suffix 引数に指定して SFXDirectory::GetUniquePath 関数を呼び出します。

使用例

SFXPath dir("/");
SFXPath path;

if (SFXDirectory::GetTemporaryPath(dir, &path) == SFERR_NO_ERROR) {

    // "/sfx8A2949E2dir/" のようなディレクトリ名が得られる
    TRACE("%s", path.Get().GetCString());
}

参照

SFXDirectory::GetUniquePath | SFXFile::GetTemporaryPath


SFXDirectory::GetUniquePath
既存のディレクトリパスと重複しないディレクトリパスを取得します。
[ public, static ]
SFCError GetUniquePath(
    SFXPathConstRef path           // ディレクトリを作成する親ディレクトリのパス
    SFXAnsiStringConstRef prefix   // ディレクトリ名のプレフィックス(接頭辞)
    SFXAnsiStringConstRef suffix   // ディレクトリ名のサフィックス(接尾辞)
    SFXPathPtr result              // ディレクトリパスへのポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、既存のディレクトリパスと重複しないディレクトリパスを取得します。

[Note] 注意

ディレクトリ名は乱数によって生成されるため、 同じ名前のディレクトリパスが存在する場合、ディレクトリパスの取得に失敗します。

65 回以上連続で失敗した場合は、SFERR_FAILED エラーを返します。

[Tip] Tip

一時的なディレクトリ(すぐに削除するディレクトリ)の場合は、 SFXDirectory::GetTemporaryPath 関数を使います。

使用例

SFXPath dir("/");
SFXPath path;

if (SFXFile::GetUniquePath(dir, "sfx", "dat", &path) == SFERR_NO_ERROR) {

    // "/sfx7182CBD4dat/" のようなディレクトリパスが生成される
    TRACE("%s", path.Get().GetCString());
}

参照

SFXDirectory::GetTemporaryPath | SFXFile::GetUniquePath


SFXDirectory::IsReadOnly
ディレクトリが読み込み専用であるか判定します。
[ public, static ]
SFCError IsReadOnly(
    SFXPathConstRef path   // 調べるディレクトリのパス
    BoolPtr result         // 結果を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、path 引数に指定されたディレクトリが読み込み専用であるか判定します。

判定結果は、result 引数に返ります。

[Note] 注意

この関数は、内部で SFBFileMgr::GetInfo 関数を呼び出します。

使用例

Bool b;

// b : IsReadOnly 関数による判定結果
SFXDirectory::IsReadOnly(SFXPath("/dir1/data.txt"), &b);

if (b) {
    // ディレクトリが読み込み専用の場合
    ...
}

参照

SFBFileMgr::GetInfo | SFXDirectory::Exists | SFXDirectory::IsSystem | BREW API IFILEMGR_GetInfo | BREW API IFILEMGR_GetLastError


SFXDirectory::IsSystem
ディレクトリがシステムディレクトリであるか判定します。
[ public, static ]
SFCError IsSystem(
    SFXPathConstRef path   // 調べるディレクトリのパス
    BoolPtr result         // 結果を受け取るポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき、またはpath 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、path 引数に指定されたディレクトリがシステムディレクトリであるか判定します。

判定結果は、result 引数に返ります。

[Note] 注意

この関数は、内部で SFBFileMgr::GetInfo 関数を呼び出します。

参照

SFBFileMgr::GetInfo | SFXDirectory::Exists | SFXDirectory::IsReadOnly | BREW API IFILEMGR_GetInfo | BREW API IFILEMGR_GetLastError


SFXDirectory::Remove
ディレクトリを削除します。
[ public, static ]
SFCError Remove(
    SFXPathConstRef path   // 削除するディレクトリのパス
    Bool force = false     // 再帰的に削除するかどうか
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • path 引数がディレクトリでないとき: SFERR_INVALID_PARAM
  • その他: BREW API IFILEMGR_GetLastError 関数が返すエラー、またはSFERR_FAILED

解説

この関数は、path 引数に指定されたディレクトリを削除します。

[Note] 注意

この関数は、内部で SFBFileMgr::RmDir / SFBFileMgr::Remove 関数を呼び出します。

使用例

dir1 の中が空の場合、dir1 を削除します。

if (SFXDirectory::Remove(SFXPath("/dir1/")) == SFERR_NO_ERROR) {
    ...
}

dir1 を再帰的に削除します。

if (SFXDirectory::Remove(SFXPath("/dir1/"), false) == SFERR_NO_ERROR) {
    ....
}

参照

SFBFileMgr::RmDir | SFBFileMgr::Remove | SFXDirectory::Create | SFXFile::Remove | BREW API IFILEMGR_RmDir | BREW API IFILE_Remove | BREW API IFILEMGR_GetLastError


SFXDirectory::Enumerator
列挙子を表すクラスです。
[ public ]

SFMTYPEDEFCLASS(Enumerator)
class Enumerator {
    public:
        explicit            Enumerator          (Void);
        SFXPath             GetNext             (Void);
        Bool                HasNext             (Void) const;
        Bool                IsValid             (Void) const;
};

解説

このクラスは、列挙子を表すクラスです。

このクラスは、以下のメンバ関数を持ちます。

GetNext 次の要素を取得します。要素がない場合 null が返ります。
HasNext 次の要素があるか調べます。
IsValid 列挙子が有効であるか判定します。

使用例

以下は、ディレクトリ内の各ファイルを取得するコードです。

SFXPath path;
SFXDirectory::Enumerator etor;  

// ファイル列挙子を取得する
SFXDirectory::GetFileEnumerator(SFXPath("/dir1/"), &etor);

// ファイルを列挙する
while (etor.HasNext()) {
    // "/dir1" 内のファイルパスを順に取得する
    path = etor.GetNext();                       
    // ログにパス名を表示する
    TRACE("file = %s", path.Get().GetCString()); 
}

参照

SFXDirectory::GetDirectoryEnumerator | SFXDirectory::GetFileEnumerator | BREW API IFILEMGR_EnumInit