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

15.4. ファイルパスとディレクトリパスを操作するためのクラス

SFXPath はファイルパスを処理するクラスです。 SFXFile クラスや SFXDirectory クラスのメンバ関数の引数にあるファイルパスの型は SFXPath です。

例 15.22. 定義

SFXPath path1("/dir1/data.txt");

SFXPath path2("dir1/dir2/");

末尾にセパレータ ( / ) があるときはディレクトリ、ないときはファイルを表します。

例 15.23. ディレクトリ判定

if (path.IsDirectory()) {
    // path がディレクトリであるとき
}

if (path.IsRootDirectory()) {
    // path がルートディレクトリであるとき
}

if (path.IsHomeDirectory()) {
    // path がホームディレクトリであるとき
}
[Note] 注意
path が "/dir1/data.txt" なら path.IsDirectory() は false を、 "/dir1/dir2/" なら true を返します。ファイルの存在に関係なく、path の文字列から判定します。

例 15.24. 親ディレクトリの取得

SFXPath path1("/dir1/dir2/data.txt");
SFXPath path2;
SFXAnsiString string;

// path2 は "/dir1/dir2/"、path1 は変化なし
path2 = path1.GetParentPath();

// 文字列を返すバージョン
string = path1.GetParent();

SFXPath を返す関数と SFXAnsiString を返す関数があります。

例 15.25. 絶対パスの取得

SFXPath path1("dir1/dir2/data.txt");
SFXPath path2;

// path2 = "/dir1/dir2/data.txt" 
// path1 は変化なし
path2 = path1.GetAbsolutePath();
[Caution] ルートパス

ルートパスは BREW のバージョンによって異なります。

BREW 2.x では "/"、BREW 3. 1/ 4.0 や BMP 1.0 では "fs:/" です。

例 15.26. 拡張子の取得

SFXPath path("/dir1/dir2/data.txt");
SFXAnsiString extension;

// 拡張子を取得する ( extension = "txt"  )
extension = path.GetExtension();

例 15.27. パスの正規化

SFXPath path1("/dir1/../dir2/./../dir3/./data.txt");
SFXPath path2;

path2 = path1.NormalizePath(); // path2 = "fs:/dir3/data.txt"