SophiaFramework UNIVERSE 5.3 |
親ディレクトリの取得や相対パスから絶対パスへの変換、拡張子やファイル名の取得や設定の操作を行います。
ファイルとディレクトリの区別は、最後の文字が 「 / 」 かで判断します。
コンストラクタ/デストラクタ |
---|
SFXPath( Void ) SFXPath クラスのコンストラクタです。
|
SFXPath(
SFXPathConstRef param
) SFXPath クラスのコンストラクタです。
|
SFXPath(
SFXAnsiStringConstRef param
) SFXPath クラスのコンストラクタです。
|
パブリック関数 | |
---|---|
SFXAnsiString |
AsDirectory( Void ) ディレクトリパス(SFXAnsiString 型)として取得します。
|
SFXPath |
AsDirectoryPath( Void ) ディレクトリパス(SFXPath 型)として取得します。
|
SFXAnsiString |
AsFile( Void ) ファイルパス(SFXAnsiString 型)として取得します。
|
SFXPath |
AsFilePath( Void ) ファイルパスとして取得します。
|
Void |
Clear( Void ) パスをクリアします。
|
static SFXPathConstRef |
EmptyInstance( Void ) 空のパスを取得します。
|
Bool |
Equals(
SFXPathConstRef param
) パスが等しいか判定します。
|
SFXAnsiStringConstRef |
Get( Void ) パス(SFXAnsiString 型)を取得します。
|
SFXAnsiString |
GetAbsolute( Void ) 絶対パス(SFXAnsiString 型)を取得します。
|
SFXPath |
GetAbsolutePath( Void ) 絶対パス(SFXPath 型)を取得します。
|
SFXAnsiString |
GetExtension( Void ) ファイルの拡張子を取得します。
|
SFXAnsiString |
GetName(
Bool extension = false
) ファイルまたはディレクトリの名前を取得します。
|
SFXAnsiString |
GetParent( Void ) 親ディレクトリのパス(SFXAnsiString 型)を取得します。
|
SFXPath |
GetParentPath( Void ) 親ディレクトリのパス(SFXPath 型)を取得します。
|
static SFXPath |
HomeDirectoryPath( Void ) ホームディレクトリのパスを取得します。
|
Bool |
IsAbsolute( Void ) 絶対パスであるか判定します。
|
Bool |
IsDirectory( Void ) ディレクトリであるか判定します。
|
Bool |
IsHomeDirectory( Void ) ホームディレクトリであるか判定します。
|
Bool |
IsRootDirectory( Void ) ルートディレクトリであるか判定します。
|
SFXAnsiString |
Normalize( Void ) 正規化したパス(SFXAnsiString 型)を取得します。
|
SFXPath |
NormalizePath( Void ) 正規化したパス(SFXPath 型)を取得します。
|
static SFXPath |
RootDirectoryPath( Void ) ルートディレクトリのパスを取得します。
|
SFCError |
Set(
SFXPathConstRef param
) パスを設定します。
|
SFCError |
Set(
SFXAnsiStringConstRef param
) パスを設定します。
|
SFCError |
SetExtension(
SFXAnsiStringConstRef extension
) ファイルの拡張子を設定します。
|
SFCError |
SetName(
SFXAnsiStringConstRef name
, Bool extension = false
) ファイルまたはディレクトリの名前を設定します。
|
Void |
ToDirectory( Void ) ディレクトリパスに変換します。
|
Void |
ToFile( Void ) ファイルパスに変換します。
|
Bool |
operator!=(
SFXPathConstRef left
, SFXPathConstRef right
) 左側のパスが右側のパスと異なるか判定します。
|
SFXPathRef |
operator=(
SFXPathConstRef param
) 左側のパスに右側のパスを代入します。
|
Bool |
operator==(
SFXPathConstRef left
, SFXPathConstRef right
) 左側のパスが右側のパスと等しいか判定します。
|
[ public, explicit ] SFXPath(Void);
[ public ] SFXPath( SFXPathConstRef param // 設定するパス );
[ public, explicit ] SFXPath( SFXAnsiStringConstRef param // 設定するパス );
このコンストラクタでは、 引数を指定してパスを初期化することが可能です。
[ public, const ] SFXAnsiString AsDirectory(Void);
この関数は、このパスをディレクトリパス(SFXAnsiString 型)として取得します。
ディレクトリパス(SFXAnsiString 型)は、内部的に以下の手順で生成されます。
ディレクトリパス | |
---|---|
ディレクトリパスとは、末尾の文字が '/' であるパスのことです。 |
SFXPath path("/user/admin/brew/a/b/c"); SFXAnsiString str; // ディレクトリパス(SFXAnsiString 型)として取得する str = path.AsDirectory(); // /user/admin/brew/a/b/c/ TRACE("%s", str.GetCString());
[ public, const ] SFXPath AsDirectoryPath(Void);
この関数は、このパスをディレクトリパス(SFXPath 型)として取得します。
ディレクトリパス(SFXPath 型)は、内部的に以下の手順で生成されます。
ディレクトリパス | |
---|---|
ディレクトリパスとは、末尾の文字が '/' であるパスのことです。 |
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);
この関数は、このパスをファイルパス(SFXAnsiString 型)として取得します。
ファイルパス(SFXAnsiString 型)は、内部的に以下の手順で生成されます。
ファイルパス | |
---|---|
ファイルパスとは、末尾が '/' 以外の文字であるパスのことです。 |
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 型)として取得します。
ファイルパス(SFXPath 型)は、内部的に以下の手順で生成されます。
ファイルパス | |
---|---|
ファイルパスとは、末尾が '/' 以外の文字であるパスのことです。 |
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 // 比較対象のパス );
この関数は、このパスが指定されたパスと等しいか(このパスが指定されたパスと同じファイルを指すか)判定します。
注意 | |
---|---|
この関数は、内部で SFXPath::Normalize 関数を実行し、 その結果の文字列が等しいか判定します。 |
[ public, const ] SFXAnsiStringConstRef Get(Void);
パス(SFXAnsiString 型)
この関数は、パス(SFXAnsiString 型)を取得します。
SFXPath path1("/dir1/data.txt");
TRACE("path = %s", path.Get().GetCString()); // /dir1/data.txt
SFXPath::Set | SFXPath::GetAbsolute | SFXPath::GetAbsolutePath | SFXPath::GetExtension | SFXPath::GetName | SFXPath::GetParent | SFXPath::GetParentPath | SFXAnsiString
[ public, const ] SFXAnsiString GetAbsolute(Void);
絶対パス(SFXAnsiString 型)
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);
親ディレクトリのパス(SFXAnsiString 型)
この関数は、親ディレクトリのパス(SFXAnsiString 型)を取得します。
現在のパスがファイルを指しているときは、ファイルが存在するディレクトリのパス、 ディレクトリを指してときは、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);
このパスの親ディレクトリのパス(SFXPath 型)
この関数は、このパスの親ディレクトリのパス(SFXPath 型)を取得します。
現在のパスがファイルを指しているときは、ファイルが存在するディレクトリのパス、 ディレクトリを指してときは、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.1 以降の環境では、 ホームディレクトリのパスは "fs:/~/" です。 BREW 2.1 以前の環境では、ホームディレクトリのパスは "/" です。 |
[ public, const ] Bool IsAbsolute(Void);
この関数は、このパスが絶対パスであるか判定します。
[ public, const ] Bool IsDirectory(Void);
この関数は、このパスがディレクトリパスであるか判定します。
ディレクトリパス | |
---|---|
ディレクトリパスの末尾の文字は '/' です。 |
[ public, const ] Bool IsHomeDirectory(Void);
この関数は、このパスがホームディレクトリであるか判定します。
ホームディレクトリのパス | |
---|---|
BREW 3.1 以降の環境では、 ホームディレクトリのパスは "fs:/~/" です。 BREW 2.1 以前の環境では、ホームディレクトリのパスは "/" です。 |
[ public, const ] Bool IsRootDirectory(Void);
この関数は、このパスがルートディレクトリであるか判定します。
ルートディレクトリのパス | |
---|---|
BREW 3.1 以降の環境では、 ルートディレクトリのパスは "fs:/" です。 BREW 2.1 以前の環境では、ルートディレクトリのパスは "/" です。 |
[ public, const ] SFXAnsiString Normalize(Void);
正規化したパス(SFXAnsiString 型)
この関数は、このパスを正規化したパス(SFXAnsiString 型)を取得します。
正規化 | |
---|---|
正規化とは、相対パスの表現を絶対パスに変換することです。 例えば、BREW 3.1 環境において .///a/b//c/./../a///../ を正規化すると、 fs:/~/a/b/ となります。 |
SFXPath path("/user/admin/log/./../brew");
TRACE("normalize = %s", path.Normalize().GetCString()); // normalize = fs:/user/admin/brew
[ public, const ] SFXPath NormalizePath(Void);
正規化したパス(SFXPath 型)
この関数は、このパスを正規化したパス(SFXPath 型)を取得します。
正規化 | |
---|---|
正規化とは、相対パスの表現を絶対パスに変換することです。 例えば、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, static ] SFXPath RootDirectoryPath(Void);
この関数は、ルートディレクトリのパスを取得します。
ルートディレクトリのパス | |
---|---|
BREW 3.1 以降の環境では、 ルートディレクトリのパスは "fs:/" です。 BREW 2.1 以前の環境では、ルートディレクトリのパスは "/" です。 |
[ public ] SFCError Set( SFXPathConstRef param // 設定するパス );
[ public ] SFCError Set( SFXAnsiStringConstRef param // 設定するパス );
この関数は、パスを設定します。
[ public ] SFCError SetExtension( SFXAnsiStringConstRef extension // 設定する拡張子 );
この関数は、このパスのファイルの拡張子を設定します。
注意 | |
---|---|
この関数は、 ファイルやディレクトリの名前は変更することはできません。 また、拡張子を削除することもできません。 |
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 // 右側のパス );
このオペレーターは、左側のパスが右側のパスと等しいか(パスが同じファイルやディレクトリを指しているか)判定します。
注意 | |
---|---|
左側のパスと右側のパスに関して、 SFXPath::Normalize 関数の戻り値が同じである場合は、true を返します。 そうでない場合は、false を返します。 |
[ public, friend ] Bool operator!=( SFXPathConstRef left // 左側のパス SFXPathConstRef right // 右側のパス );
このオペレーターは、左側のパスが右側のパスと異なるか判定します。
注意 | |
---|---|
左側のパスと右側のパスに関して、 SFXPath::Normalize 関数の戻り値が異なる場合は、true を返します。 そうでない場合は、false を返します。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |