前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXPath
ファイルパスとディレクトリパスを操作するためのクラスです。
#include <SFXPath.h.hpp>
class SFXPath;
SFMTYPEDEFCLASS(SFXPath)

協調図

SFXPath クラスの協調図

解説

親ディレクトリの取得や相対パスから絶対パスへの変換、拡張子やファイル名の取得や設定の操作を行います。

ファイルとディレクトリの区別は、最後の文字が 「 / 」 かで判断します。

参照

SFXFile | SFXDirectory | ファイルパス

メンバ

コンストラクタ/デストラクタ
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 )
左側のパスが右側のパスと等しいか判定します。

SFXPath::SFXPath
SFXPath クラスのコンストラクタです。
[ public, explicit ]
SFXPath(Void);
[ public ]
SFXPath(
    SFXPathConstRef param   // 設定するパス
);
[ public, explicit ]
SFXPath(
    SFXAnsiStringConstRef param   // 設定するパス
);

解説

このコンストラクタでは、 引数を指定してパスを初期化することが可能です。

参照

SFXPath::Set | SFXPath::operator=


SFXPath::AsDirectory
ディレクトリパス(SFXAnsiString 型)として取得します。
[ public, const ]
SFXAnsiString AsDirectory(Void);

戻り値

ディレクトリパス(SFXAnsiString 型)

このパスの最後が '/' でないときは、 最後に '/' を追加したパス(SFXAnsiString 型)を返します。

解説

この関数は、このパスをディレクトリパス(SFXAnsiString 型)として取得します。

ディレクトリパス(SFXAnsiString 型)は、内部的に以下の手順で生成されます。

  1. このパスを SFXAnsiString 型の文字列に変換します。
  2. 文字列の末尾の文字が '/' であれば、それはディレクトリパスです。
  3. そうでない場合は、'/' を文字列の末尾に追加します。 その結果がディレクトリパスです。
[Note] ディレクトリパス

ディレクトリパスとは、末尾の文字が '/' であるパスのことです。

使用例

SFXPath path("/user/admin/brew/a/b/c");
SFXAnsiString str;

// ディレクトリパス(SFXAnsiString 型)として取得する
str = path.AsDirectory();  

// /user/admin/brew/a/b/c/
TRACE("%s", str.GetCString()); 

参照

SFXPath::AsDirectoryPath | SFXPath::ToDirectory | SFXPath::AsFile | SFXAnsiString


SFXPath::AsDirectoryPath
ディレクトリパス(SFXPath 型)として取得します。
[ public, const ]
SFXPath AsDirectoryPath(Void);

戻り値

ディレクトリパス(SFXPath 型)

このパスの最後が '/' でないときは、 最後に '/' を追加したパス(SFXPath 型)を返します。

解説

この関数は、このパスをディレクトリパス(SFXPath 型)として取得します。

ディレクトリパス(SFXPath 型)は、内部的に以下の手順で生成されます。

  1. このパスの末尾の文字が '/' であれば、それはディレクトリパスです。
  2. そうでない場合は、'/' をこのパスの末尾に追加します。 その結果がディレクトリパスです。
[Note] ディレクトリパス

ディレクトリパスとは、末尾の文字が '/' であるパスのことです。

使用例

SFXPath path1("/user/admin/brew/a/b/c");
SFXPath path2;

// ディレクトリパスとして取得する
path2 = path.AsDirectoryPath();  

// /user/admin/brew/a/b/c/
TRACE("%s", path2.Get().GetCString()); 

参照

SFXPath::AsFilePath | SFXPath::ToDirectory | SFXPath::AsDirectory | SFXPath


SFXPath::AsFile
ファイルパス(SFXAnsiString 型)として取得します。
[ public, const ]
SFXAnsiString AsFile(Void);

戻り値

ファイルパス(SFXAnsiString 型)

このパスの最後が '/' であるときは、 最後の '/' を除去したパス(文字列)を返します。

解説

この関数は、このパスをファイルパス(SFXAnsiString 型)として取得します。

ファイルパス(SFXAnsiString 型)は、内部的に以下の手順で生成されます。

  1. このパスを SFXAnsiString 型の文字列に変換します。
  2. 文字列の末尾の文字が '/' でなければ、それはファイルパスです。
  3. そうでない場合は、末尾の '/' を除去します。 その結果がファイルパスです。
[Note] ファイルパス

ファイルパスとは、末尾が '/' 以外の文字であるパスのことです。

使用例

SFXPath path("/user/admin/log/./../brew/log.txt/");
SFXAnsiString str;

str = path.AsFile();  // ファイルパス(文字列)に変換する

TRACE("%s", str.GetCString()); // /user/admin/log/./../brew/log.txt

参照

SFXPath::AsFilePath | SFXPath::ToFile | SFXPath::AsDirectory | SFXAnsiString


SFXPath::AsFilePath
ファイルパスとして取得します。
[ public, const ]
SFXPath AsFilePath(Void);

戻り値

ファイルパス(SFXPath 型)

このパスの最後が "/" であるときは、 最後の "/" を除去したパス(SFXPath 型)を返します。

解説

この関数は、このパスをファイルパス(SFXPath 型)として取得します。

ファイルパス(SFXPath 型)は、内部的に以下の手順で生成されます。

  1. 文字列の末尾の文字が '/' でなければ、それはファイルパスです。
  2. そうでない場合は、末尾の '/' を除去します。 その結果がファイルパスです。
[Note] ファイルパス

ファイルパスとは、末尾が '/' 以外の文字であるパスのことです。

使用例

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

path2 = path.AsFilePath();  // ファイルパスに変換する

TRACE("%s", path2.Get().GetCString()); // dir1/dir2/data.txt

参照

SFXPath::AsFile | SFXPath::ToFile | SFXPath::AsDirectoryPath | SFXPath


SFXPath::Clear
パスをクリアします。
[ public ]
Void Clear(Void);

解説

この関数は、このパスをクリアします。

[Note] 注意

クリア後のパスは、SFXPath::EmptyInstance 関数の戻り値と同じです。

使用例

SFXPath path("/user/admin/brew/a/b/c");
    
...
     
path.Clear();    // パスをクリアする

参照

SFXPath::EmptyInstance


SFXPath::EmptyInstance
空のパスを取得します。
[ public, static ]
SFXPathConstRef EmptyInstance(Void);

解説

この関数は、空のパスを表すインスタンスを取得します。

参照

SFXPath::Clear


SFXPath::Equals
パスが等しいか判定します。
[ public, const ]
Bool Equals(
    SFXPathConstRef param   // 比較対象のパス
);

戻り値

  • 等しいとき: true
  • 異なるとき: false

解説

この関数は、このパスが指定されたパスと等しいか(このパスが指定されたパスと同じファイルを指すか)判定します。

[Note] 注意

この関数は、内部で SFXPath::Normalize 関数を実行し、 その結果の文字列が等しいか判定します。

参照

SFXPath::Normalize | SFXPath::operator== | SFXPath::operator!=


SFXPath::Get
パス(SFXAnsiString 型)を取得します。
[ 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


SFXPath::GetAbsolute
絶対パス(SFXAnsiString 型)を取得します。
[ public, const ]
SFXAnsiString GetAbsolute(Void);

戻り値

絶対パス(SFXAnsiString 型)

解説

この関数は、このパスの絶対パス(SFXAnsiString 型)を取得します。

[Note] 注意

相対パスが設定されている場合、 内部で自動的に絶対パスに変換して返します。

使用例

SFXPath path("/user/admin/log/./../brew/log.txt");

TRACE("absolute = %s", path.GetAbsolute().GetCString());  //  absolute = fs:/~/user/admin/log/./../brew/log.txt

参照

SFXPath::IsAbsolute | SFXPath::Get | SFXPath::GetAbsolutePath | SFXAnsiString


SFXPath::GetAbsolutePath
絶対パス(SFXPath 型)を取得します。
[ public, const ]
SFXPath GetAbsolutePath(Void);

戻り値

絶対パス(SFXPath 型)

解説

この関数は、このパスの絶対パス(SFXPath 型)を取得します。

[Note] 注意

相対パスが設定されている場合、 内部で自動的に絶対パスに変換して返します。

使用例

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

// path2 = "/dir1/dir2/data.txt" 
// path1 は変化なし
path2 = path1.GetAbsolutePath();

参照

SFXPath::IsAbsolute | SFXPath::Get | SFXPath::GetAbsolute | SFXPath


SFXPath::GetExtension
ファイルの拡張子を取得します。
[ public, const ]
SFXAnsiString GetExtension(Void);

戻り値

パスの拡張子

解説

この関数は、ファイルの拡張子を取得します。

[Note] 注意

ディレクトリパスである場合や、 拡張子が設定されていない場合は、空文字列を返します。

使用例

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

// 拡張子を取得する 
extension = path.GetExtension();
TRACE("extension = %s", extension.GetCString()); // extension = txt

参照

SFXPath::Get | SFXPath::SetExtension


SFXPath::GetName
ファイルまたはディレクトリの名前を取得します。
[ public, const ]
SFXAnsiString GetName(
    Bool extension = false   // 拡張子を含めた名前を取得するかどうか
);

戻り値

ファイルまたはディレクトリの名前

解説

この関数は、ファイルまたはディレクトリの名前を取得します。

使用例

SFXPath path("/user/admin/log/./../brew/log.txt");
    
TRACE("name = %s", path.GetName().GetCString());  // name = log

参照

SFXPath::Get | SFXPath::SetName


SFXPath::GetParent
親ディレクトリのパス(SFXAnsiString 型)を取得します。
[ 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/./../ 

参照

SFXPath::Get | SFXPath::GetParentPath | SFXAnsiString


SFXPath::GetParentPath
親ディレクトリのパス(SFXPath 型)を取得します。
[ 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();

参照

SFXPath::Get | SFXPath::GetParent | SFXPath


SFXPath::HomeDirectoryPath
ホームディレクトリのパスを取得します。
[ public, static ]
SFXPath HomeDirectoryPath(Void);

戻り値

  • BREW 3.1 以降: "fs:/~/"
  • BREW 2.1 以前: "/"

解説

この関数は、ホームディレクトリのパスを取得します。

[Note] ホームディレクトリのパス

BREW 3.1 以降の環境では、 ホームディレクトリのパスは "fs:/~/" です。

BREW 2.1 以前の環境では、ホームディレクトリのパスは "/" です。

参照

SFXPath::IsHomeDirectory


SFXPath::IsAbsolute
絶対パスであるか判定します。
[ public, const ]
Bool IsAbsolute(Void);

戻り値

  • 絶対パスのとき: true
  • そうでないとき: false

解説

この関数は、このパスが絶対パスであるか判定します。

参照

SFXPath::GetAbsolute SFXPath::GetAbsolutePath


SFXPath::IsDirectory
ディレクトリであるか判定します。
[ public, const ]
Bool IsDirectory(Void);

戻り値

  • ディレクトリパスのとき: true
  • そうでないとき: false

解説

この関数は、このパスがディレクトリパスであるか判定します。

[Note] ディレクトリパス

ディレクトリパスの末尾の文字は '/' です。

参照

SFXPath::ToDirectory | SFXPath::AsDirectory


SFXPath::IsHomeDirectory
ホームディレクトリであるか判定します。
[ public, const ]
Bool IsHomeDirectory(Void);

戻り値

  • ホームディレクトリのとき: true
  • そうでないとき: false

解説

この関数は、このパスがホームディレクトリであるか判定します。

[Note] ホームディレクトリのパス

BREW 3.1 以降の環境では、 ホームディレクトリのパスは "fs:/~/" です。

BREW 2.1 以前の環境では、ホームディレクトリのパスは "/" です。

参照

SFXPath::HomeDirectoryPath


SFXPath::IsRootDirectory
ルートディレクトリであるか判定します。
[ public, const ]
Bool IsRootDirectory(Void);

戻り値

  • ルートディレクトリのとき: true
  • そうでないとき: false

解説

この関数は、このパスがルートディレクトリであるか判定します。

[Note] ルートディレクトリのパス

BREW 3.1 以降の環境では、 ルートディレクトリのパスは "fs:/" です。

BREW 2.1 以前の環境では、ルートディレクトリのパスは "/" です。

参照

SFXPath::RootDirectoryPath


SFXPath::Normalize
正規化したパス(SFXAnsiString 型)を取得します。
[ public, const ]
SFXAnsiString Normalize(Void);

戻り値

正規化したパス(SFXAnsiString 型)

解説

この関数は、このパスを正規化したパス(SFXAnsiString 型)を取得します。

[Note] 正規化

正規化とは、相対パスの表現を絶対パスに変換することです。

例えば、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

参照

SFXPath::NormalizePath | SFXAnsiString


SFXPath::NormalizePath
正規化したパス(SFXPath 型)を取得します。
[ public, const ]
SFXPath NormalizePath(Void);

戻り値

正規化したパス(SFXPath 型)

解説

この関数は、このパスを正規化したパス(SFXPath 型)を取得します。

[Note] 正規化

正規化とは、相対パスの表現を絶対パスに変換することです。

例えば、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/" 

参照

SFXPath::Normalize | SFXPath


SFXPath::RootDirectoryPath
ルートディレクトリのパスを取得します。
[ public, static ]
SFXPath RootDirectoryPath(Void);

戻り値

  • BREW 3.1 以降: "fs:/"
  • BREW 2.1 以前: "/"

解説

この関数は、ルートディレクトリのパスを取得します。

[Note] ルートディレクトリのパス

BREW 3.1 以降の環境では、 ルートディレクトリのパスは "fs:/" です。

BREW 2.1 以前の環境では、ルートディレクトリのパスは "/" です。

参照

SFXPath::IsRootDirectory


SFXPath::Set
パスを設定します。
[ public ]
SFCError Set(
    SFXPathConstRef param   // 設定するパス
);
[ public ]
SFCError Set(
    SFXAnsiStringConstRef param   // 設定するパス
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、パスを設定します。

参照

SFXPath::Get | SFXPath::SetExtension | SFXPath::SetName | SFXPath::operator=


SFXPath::SetExtension
ファイルの拡張子を設定します。
[ public ]
SFCError SetExtension(
    SFXAnsiStringConstRef extension   // 設定する拡張子
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • extension 引数が null のとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、このパスのファイルの拡張子を設定します。

[Note] 注意

この関数は、 ファイルやディレクトリの名前は変更することはできません。 また、拡張子を削除することもできません。

使用例

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

path.SetExtension("dat");
TRACE("path = %s", path.Get().GetCString());  // path = /dir1/dir2/data.dat

参照

SFXPath::Set | SFXPath::GetExtension


SFXPath::SetName
ファイルまたはディレクトリの名前を設定します。
[ public ]
SFCError SetName(
    SFXAnsiStringConstRef name   // 設定する名前
    Bool extension = false       // 拡張子を含めた名前を設定するかどうか
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • name 引数が null のとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、ファイルまたはディレクトリの名前を設定します。

[Note] 注意

ディレクトリには拡張子が無いので、 extension 引数の指定は無効です。

使用例

SFXPath path("dir1/dir2/");

path.SetName("user");
TRACE("%s", path.Get().GetCString());  // dir1/user/

参照

SFXPath::Set | SFXPath::GetName


SFXPath::ToDirectory
ディレクトリパスに変換します。
[ public ]
Void ToDirectory(Void);

解説

この関数は、このパスをディレクトリパスに変換します。

このパスの最後が "/" でないときは、 最後に "/" を付加したパスに変換します。

[Note] ディレクトリパス

ディレクトリパスとは、末尾の文字が '/' であるパスのことです。

参照

SFXPath::ToFile | SFXPath::AsDirectory | SFXPath::AsDirectoryPath


SFXPath::ToFile
ファイルパスに変換します。
[ public ]
Void ToFile(Void);

解説

この関数は、このパスをファイルパスに変換します。

このパスの最後が "/" であるときは、 最後の "/" を除去したパスに変換します。

[Note] ファイルパス

ファイルパスとは、末尾が '/' 以外の文字であるパスのことです。

参照

SFXPath::ToDirectory | SFXPath::AsFile | SFXPath::AsFilePath


SFXPath::operator=
左側のパスに右側のパスを代入します。
[ public ]
SFXPathRef operator=(
    SFXPathConstRef param   // 右側のパス
);

戻り値

代入後の左側のパス

解説

このオペレーターは、左側のパスに右側のパスを代入します。

[Note] 注意

このオペレーターは左側のパスに影響を及ぼします。

参照

SFXPath::Set


SFXPath::operator==
左側のパスが右側のパスと等しいか判定します。
[ public, friend ]
Bool operator==(
    SFXPathConstRef left    // 左側のパス
    SFXPathConstRef right   // 右側のパス
);

戻り値

  • 等しいとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のパスが右側のパスと等しいか(パスが同じファイルやディレクトリを指しているか)判定します。

[Note] 注意

左側のパスと右側のパスに関して、 SFXPath::Normalize 関数の戻り値が同じである場合は、true を返します。 そうでない場合は、false を返します。

参照

SFXPath::Equals | SFXPath::Normalize | SFXPath::operator!=


SFXPath::operator!=
左側のパスが右側のパスと異なるか判定します。
[ public, friend ]
Bool operator!=(
    SFXPathConstRef left    // 左側のパス
    SFXPathConstRef right   // 右側のパス
);

戻り値

  • 異なるとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のパスが右側のパスと異なるか判定します。

[Note] 注意

左側のパスと右側のパスに関して、 SFXPath::Normalize 関数の戻り値が異なる場合は、true を返します。 そうでない場合は、false を返します。

参照

SFXPath::Equals | SFXPath::Normalize | SFXPath::operator==