![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |

親ディレクトリの取得や相対パスから絶対パスへの変換、拡張子やファイル名の取得や設定の操作を行います。
ファイルとディレクトリの区別は、最後の文字が 「 / 」 かで判断します。
| コンストラクタ/デストラクタ |
|---|
|
SFXPath( Void ) SFXPath( SFXPathConstRef param ) SFXPath( SFXAnsiStringConstRef param ) SFXPath クラスのコンストラクタです。
|
[ public, explicit ] SFXPath(Void);
[ public ]
SFXPath(
SFXPathConstRef param // 設定するパス
);
[ public, explicit ]
SFXPath(
SFXAnsiStringConstRef param // 設定するパス
);
コンストラクタの引数に指定したオブジェクトをコピーしてパスを構築します。
[ public, const ] SFXAnsiString AsDirectory(Void);
パスがファイルを指しているとき、最後に / を付加したパスの文字列に変換します。
SFXPath path("/user/admin/brew/a/b/c");
SFXAnsiString str;
// ディレクトリのパスを文字列に変換する
str = path.AsDirectory();
// /user/admin/brew/a/b/c/
TRACE("%s", str.GetCString());
[ public, const ] SFXPath AsDirectoryPath(Void);
パスがファイルを指しているとき、最後に / を付加したパスに変換します。
SFXPath path1("/user/admin/brew/a/b/c");
SFXPath path2;
// パス名をディレクトリ パスに変換する
path2 = path.AsDirectoryPath();
// /user/admin/brew/a/b/c/
TRACE("%s", path2.Get().GetCString());
[ public, const ] SFXAnsiString AsFile(Void);
パスがディレクトリを指しているとき、最後の / を除去したパスの文字列に変換します。
SFXPath path("/user/admin/log/./../brew/log.txt");
SFXAnsiString str;
str = path.AsFile(); // ファイルのパスを文字列に変換
TRACE("%s", str.GetCString()); // /user/admin/log/./../brew/log.txt
[ public, const ] SFXPath AsFilePath(Void);
パスがディレクトリを指している場合、最後の / を除去したパスに変換します。
SFXPath path1("dir1/dir2/data.txt");
SFXPath path2;
path2 = path.AsFilePath(); // パス名をファイル パスに変換
TRACE("%s", path2.Get().GetCString()); // dir1/dir2/data.txt
[ public ] Void Clear(Void);
SFXPath path("/user/admin/brew/a/b/c");
...
path.Clear(); // パスを消去
[ public, static ] SFXPathConstRef EmptyInstance(Void);
空のパスを表すインスタンスを取得します。
[ public, const ] Bool Equals( SFXPathConstRef param // 比較対象のパス );
パスが等しいとは、パスが同じファイルやディレクトリを指すことを意味します。
[ public, const ] SFXAnsiStringConstRef Get(Void);
SFXPath path1("/dir1/data.txt");
TRACE("path = %s", path.Get().GetCString()); // /dir1/data.txt
SFXPath::GetAbsolute | SFXPath::GetAbsolutePath | SFXPath::GetExtension | SFXPath::GetName | SFXPath::GetParent | SFXPath::GetParentPath | SFXPath::Set
[ public, const ] SFXAnsiString GetAbsolute(Void);
絶対パスの文字列を返します。
相対パスが設定されていると、絶対パスへの変換を行います。
SFXPath path("/user/admin/log/./../brew/log.txt");
TRACE("absolute = %s", path.GetAbsolute().GetCString()); // absolute = fs:/~/user/admin/log/./../brew/log.txt
[ public, const ] SFXPath GetAbsolutePath(Void);
絶対パスが設定された SFXPath クラスを返します。
相対パスが設定されていると、絶対パスへの変換を行います。
SFXPath path1("dir1/dir2/data.txt");
SFXPath path2;
// path2 = "/dir1/dir2/data.txt"
// path1 は変化なし
path2 = path1.GetAbsolutePath();
[ public, const ] SFXAnsiString GetExtension(Void);
設定されているパスの拡張子を返します。
ディレクトリが設定されている場合や拡張子がない場合は空文字列を返します。
SFXPath path("/dir1/dir2/data.txt");
SFXAnsiString extension;
// 拡張子を取得する
extension = path.GetExtension();
TRACE("extension = %s", extension.GetCString()); // extension = txt
[ public, const ] SFXAnsiString GetName( Bool extension = false // 拡張子を含めた名前を取得するかどうか );
SFXPath path("/user/admin/log/./../brew/log.txt");
TRACE("name = %s", path.GetName().GetCString()); // name = log
[ public, const ] SFXAnsiString GetParent(Void);
現在のパスがファイルを指しているときは、ファイルが存在するディレクトリのパス、 ディレクトリを指してときは、1つ上の階層のディレクトリのパスを返します。
現在のパスがファイルを指しているとき
SFXPath path("/user/admin/log/./../brew/log.txt");
TRACE("parent = %s", path.GetParent().GetCString()); // parent = /user/admin/log/./../brew/
現在のパスがディレクトリを指しているとき
SFXPath path("/user/admin/log/./../brew");
TRACE("parent = %s", path.GetParent().GetCString()); // parent = /user/admin/log/./../
[ public, const ] SFXPath GetParentPath(Void);
現在のパスがファイルを指しているときは、ファイルが存在するディレクトリのパス、 ディレクトリを指しているときは、1つ上の階層のディレクトリのパスを返します。
SFXPath path1("/dir1/dir2/data.txt");
SFXPath path2;
SFXAnsiString string;
// path2 は "/dir1/dir2/"
// path1 は変化なし
path2 = path1.GetParentPath();
[ public, static ] SFXPath HomeDirectoryPath(Void);
BREW 3.0,3.1 環境では fs:/~/ 、 それ以前の環境では / を返します。
[ public, const ] Bool IsAbsolute(Void);
[ public, const ] Bool IsDirectory(Void);
[ public, const ] Bool IsHomeDirectory(Void);
ホームディレクトリとは、 BREW 3.0,3.1 環境では fs:/~/ 、 それ以前の環境では / を指します。
IsHomeDirectory 関数は、 BREW 3.0,3.1 環境ではパスが fs:/~/ もしくは / であるかを調べます。 それ以前の環境ではパスが / であるかを調べます。
[ public, const ] Bool IsRootDirectory(Void);
ルートディレクトリとは、 BREW 3.0,3.1 環境では fs:/ 、 それ以前の環境では / を指します。
IsRootDirectory 関数は、 BREW 3.0,3.1 環境ではパスが fs:/ もしくは / であるかを調べます。 それ以前の環境ではパスが / であるかを調べます。
[ public, const ] SFXAnsiString Normalize(Void);
正規化したパスを文字列で返します。
正規化とは、相対パスの表現を絶対パスに変換することです。 例えば、BREW 3.1 環境において .///a/b//c/./../a///../ を正規化すると fs:/~/a/b/ となります。
SFXPath path1(".///a/b//c/./../a///../ ");
SFXPath path2;
path2 = path1.NormalizePath(); // path2 = "fs:/~/a/b/"
[ public, const ] SFXPath NormalizePath(Void);
正規化したパスを返します。
正規化とは、相対パスの表現を全て解決し、絶対パスに変換したものです。 例えば、BREW 3.1 環境において .///a/b//c/./../a///../ を正規化すると fs:/a/b/a/ となります。
SFXPath path("/user/admin/log/./../brew");
TRACE("normalize = %s", path.Normalize().GetCString()); // normalize = fs:/user/admin/brew
[ public, static ] SFXPath RootDirectoryPath(Void);
ルート ディレクトリのパスを返します。 BREW 3.0,3.1 環境では fs:/ 、 それ以前の環境では / が設定されたパスを返します。
[ public ] SFCError Set( SFXPathConstRef param // 設定するパス );
[ public ] SFCError Set( SFXAnsiStringConstRef param // 設定するパス );
[ public ] SFCError SetExtension( SFXAnsiStringConstRef extension // 設定する拡張子 );
SetExtension 関数ではディレクトリの名前を変更することはできません。 また、拡張子を削除することもできません。
SFXPath path("/dir1/dir2/data.txt");
path.SetExtension("dat");
TRACE("path = %s", path.Get().GetCString()); // path = /dir1/dir2/data.dat
[ public ] SFCError SetName( SFXAnsiStringConstRef name // 設定する名前 Bool extension = false // 拡張子を含めた名前を設定するかどうか );
ディレクトリには拡張子が無いので、 extension 引数の指定は無効です。
SFXPath path("dir1/dir2/");
path.SetName("user");
TRACE("%s", path.Get().GetCString()); // dir1/user/
[ public ] Void ToDirectory(Void);
パスがファイルを指している場合、最後に / を付加してディレクトリとして扱うことができます。
[ public ] Void ToFile(Void);
パスがディレクトリを指している場合、最後の / を除去してファイルとして扱うことができます。
[ public ] SFXPathRef operator=( SFXPathConstRef param // コピー元のパス );
[ public, friend ] Bool operator==( SFXPathConstRef left // 比較するパス SFXPathConstRef right // 比較するパス );
[ public, friend ] Bool operator!=( SFXPathConstRef left // 比較するパス SFXPathConstRef right // 比較するパス );
パスが等しいとは、パスが同じファイルやディレクトリを指しています。
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|