前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0

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

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

例 17.22. 定義

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

SFXPath path2("dir1/dir2/");

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

例 17.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 の文字列から判定します。

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

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

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

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

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

例 17.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.x は "fs:/" です。

例 17.26. 拡張子の取得

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

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

例 17.27. パスの正規化

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

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