SophiaFramework UNIVERSE 5.3 |
SFXDirectory クラスは、 ディレクトリの作成や削除、ディレクトリ情報の取得、 ディレクトリ内のファイルやディレクトリの巡回、 テンポラリディレクトリの作成などの処理を行うためのクラスです。
パブリック関数 | |
---|---|
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 列挙子を表すクラスです。
|
[ public, static ] SFCError Create( SFXPathConstRef path // 作成するディレクトリのパス Bool force = false // 強制的に作成するかどうか );
この関数は、path 引数に指定したディレクトリを作成します。
引数 force を true にすると、指定したパスに存在しないディレクトリも作成します。
注意 | |
---|---|
この関数は、内部で SFBFileMgr::MkDir 関数を呼び出します。 |
// ディレクトリを強制的に作成する // ※ dir1 が存在しないとき、dir1 は自動的に作成される SFXDirectory::Create(SFXPath("/dir1/dir2/"), true);
SFBFileMgr::MkDir | SFXDirectory::Remove | BREW API IFILEMGR_MkDir | BREW API IFILEMGR_GetLastError
この関数は、ファイルシステムの合計空き容量を取得します。
取得したファイルシステムの合計空き容量は、result 引数に返ります。[単位: バイト]
注意 | |
---|---|
この関数は、内部で SFBFileMgr::GetFreeSpace 関数を呼び出します。 |
注意 | |
---|---|
シミュレータでファイルシステムの合計空き容量が最大 32 ビット整数値よりも大きい場合は、 最大 32 ビット整数値 (0xFFFFFFFF) が返されます。 |
UInt32 space;
SFXDirectory::DeviceFreeSpace(&space); // space に現在使用可能な空き容量を取得する
SFBFileMgr::GetFreeSpace | SFXDirectory::DeviceTotalSpace | BREW API IFILE_IFILEMGR_GetFreeSpace | BREW API IFILEMGR_GetLastError
この関数は、ファイルシステムの合計容量を取得します。
取得した合計容量は、result 引数に返ります。[単位: バイト]
注意 | |
---|---|
この関数は、内部で SFBFileMgr::GetFreeSpace 関数を呼び出します。 |
注意 | |
---|---|
シミュレータでファイルシステムの合計容量が最大 32 ビット整数値よりも大きい場合は、 最大 32 ビット整数値 (0xFFFFFFFF) が返されます。 |
UInt32 space;
SFXDirectory::DeviceTotalSpace(&space); // space にファイルシステムの合計容量を取得する
SFBFileMgr::GetFreeSpace | SFXDirectory::DeviceFreeSpace | BREW API IFILE_IFILEMGR_GetFreeSpace | BREW API IFILEMGR_GetLastError
[ public, static ] SFCError Exists( SFXPathConstRef path // 存在を調べるディレクトリのパス BoolPtr result // 結果を受け取るポインタ );
この関数は、path 引数に指定したディレクトリが存在するか判定します。 判定結果は、result 引数に返ります。
注意 | |
---|---|
この関数は、内部で SFBFileMgr::Test 関数を呼び出します。 |
Bool b; // Exists 関数による判定結果は b 変数に格納される SFXDirectory::Exists(SFXPath("/dir1/"), &b); if (b) { // ディレクトリが存在するとき }
[ public, static ] SFCError GetCreateDate( SFXPathConstRef path // ディレクトリのパス SFXDatePtr result // 作成日時を受け取るポインタ );
この関数は、path 引数に指定したディレクトリの作成日時を取得します。
取得したディレクトリ作成日時は、result 引数に返ります。
注意 | |
---|---|
この関数は、内部で SFBFileMgr::GetInfo 関数を呼び出します。 |
SFXDate date; // 日付クラス // ディレクトリの作成日時を取得する SFXDirectory::GetCreateDate(SFXPath("/dir1/"), &date);
[ public, static ] SFCError GetDirectoryEnumerator( SFXPathConstRef path // ディレクトリのパス EnumeratorPtr result // 列挙子を受け取るポインタ );
この関数は、ディレクトリ内のディレクトリ列挙子を取得します。 ディレクトリ列挙子は、result 引数に返ります。
注意 | |
---|---|
この関数は、内部で 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()); }
[ public, static ] SFCError GetFileEnumerator( SFXPathConstRef path // ディレクトリのパス EnumeratorPtr result // 列挙子を受け取るポインタ );
この関数は、ディレクトリ内のファイル列挙子を取得します。 ファイル列挙子は、result 引数に返ります。
注意 | |
---|---|
この関数は、内部で 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()); }
[ public, static ] SFCError GetTemporaryPath( SFXPathConstRef path // テンポラリディレクトリを作成するディレクトリのパス SFXPathPtr result // テンポラリディレクトリパスへのポインタ );
この関数は、既存のディレクトリパスと重複しないテンポラリディレクトリのパスを取得します。
注意 | |
---|---|
この関数は、内部的に接頭辞 "sfx" を prefix 引数に、 接尾辞 "dir" を suffix 引数に指定して SFXDirectory::GetUniquePath 関数を呼び出します。 |
SFXPath dir("/");
SFXPath path;
if (SFXDirectory::GetTemporaryPath(dir, &path) == SFERR_NO_ERROR) {
// "/sfx8A2949E2dir/" のようなディレクトリ名が得られる
TRACE("%s", path.Get().GetCString());
}
[ public, static ] SFCError GetUniquePath( SFXPathConstRef path // ディレクトリを作成する親ディレクトリのパス SFXAnsiStringConstRef prefix // ディレクトリ名のプレフィックス(接頭辞) SFXAnsiStringConstRef suffix // ディレクトリ名のサフィックス(接尾辞) SFXPathPtr result // ディレクトリパスへのポインタ );
この関数は、既存のディレクトリパスと重複しないディレクトリパスを取得します。
注意 | |
---|---|
ディレクトリ名は乱数によって生成されるため、 同じ名前のディレクトリパスが存在する場合、ディレクトリパスの取得に失敗します。 65 回以上連続で失敗した場合は、SFERR_FAILED エラーを返します。 |
Tip | |
---|---|
一時的なディレクトリ(すぐに削除するディレクトリ)の場合は、 SFXDirectory::GetTemporaryPath 関数を使います。 |
SFXPath dir("/");
SFXPath path;
if (SFXFile::GetUniquePath(dir, "sfx", "dat", &path) == SFERR_NO_ERROR) {
// "/sfx7182CBD4dat/" のようなディレクトリパスが生成される
TRACE("%s", path.Get().GetCString());
}
[ public, static ] SFCError IsReadOnly( SFXPathConstRef path // 調べるディレクトリのパス BoolPtr result // 結果を受け取るポインタ );
この関数は、path 引数に指定されたディレクトリが読み込み専用であるか判定します。
判定結果は、result 引数に返ります。
注意 | |
---|---|
この関数は、内部で 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
[ public, static ] SFCError IsSystem( SFXPathConstRef path // 調べるディレクトリのパス BoolPtr result // 結果を受け取るポインタ );
この関数は、path 引数に指定されたディレクトリがシステムディレクトリであるか判定します。
判定結果は、result 引数に返ります。
注意 | |
---|---|
この関数は、内部で SFBFileMgr::GetInfo 関数を呼び出します。 |
SFBFileMgr::GetInfo | SFXDirectory::Exists | SFXDirectory::IsReadOnly | BREW API IFILEMGR_GetInfo | BREW API IFILEMGR_GetLastError
[ public, static ] SFCError Remove( SFXPathConstRef path // 削除するディレクトリのパス Bool force = false // 再帰的に削除するかどうか );
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
[ 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()); }
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |