前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFXPath
ファイル パスとディレクトリ パスを操作するためのクラスです。
#include <SFXPath.h.hpp>
class SFXPath;
SFMTYPEDEFCLASS(SFXPath)

協調図

SFXPath クラスの協調図

解説

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

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

参照

SFXFile | SFXDirectory | ファイル パス

メンバ

コンストラクタ/デストラクタ
SFXPath( Void )
SFXPath( SFXPathConstRef param )
SFXPath( SFXAnsiStringConstRef param )
SFXPath クラスのコンストラクタです。
パブリック関数
SFXAnsiString AsDirectory( Void )
ディレクトリのパスを文字列に変換します。
SFXPath AsDirectoryPath( Void )
パス名をディレクトリ パスに変換します。
SFXAnsiString AsFile( Void )
ファイルのパスを文字列に変換します。
SFXPath AsFilePath( Void )
パス名をファイル パスに変換します。
Void Clear( Void )
パスを消去します。
static
SFXPathConstRef
EmptyInstance( Void )
空のパスを取得します。
Bool Equals( SFXPathConstRef param )
パスが等しいか判定します。
SFXAnsiStringConstRef Get( Void )
パスを文字列で取得します。
SFXAnsiString GetAbsolute( Void )
絶対パスを文字列で取得します。
SFXPath GetAbsolutePath( Void )
絶対パスを取得します。
SFXAnsiString GetExtension( Void )
ファイルの拡張子を取得します。
SFXAnsiString GetName( Bool extension = false )
ファイルやディレクトリの名前を取得します。
SFXAnsiString GetParent( Void )
親ディレクトリのパスを文字列で取得します。
SFXPath GetParentPath( Void )
親ディレクトリのパスを取得します。
static
SFXPath
HomeDirectoryPath( Void )
ホーム ディレクトリのパスを取得します。
Bool IsAbsolute( Void )
パスが絶対パスか判定します。
Bool IsDirectory( Void )
パスがディレクトリか判定します。
Bool IsHomeDirectory( Void )
パスがホームディレクトリか判定します。
Bool IsRootDirectory( Void )
パスがルートディレクトリか判定します。
SFXAnsiString Normalize( Void )
パスを正規化します。
SFXPath NormalizePath( Void )
正規化したパスを取得します。
static
SFXPath
RootDirectoryPath( Void )
ルート ディレクトリのパスを取得します。
SFCError Set( SFXPathConstRef param )
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
ディレクトリのパスを文字列に変換します。
[ 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()); 

参照

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


SFXPath::AsDirectoryPath
パス名をディレクトリ パスに変換します。
[ 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()); 

参照

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


SFXPath::AsFile
ファイルのパスを文字列に変換します。
[ 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

参照

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


SFXPath::AsFilePath
パス名をファイル パスに変換します。
[ 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

参照

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


SFXPath::Clear
パスを消去します。
[ public ]
Void Clear(Void);

使用例

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

解説

パスが等しいとは、パスが同じファイルやディレクトリを指すことを意味します。

参照

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


SFXPath::Get
パスを文字列で取得します。
[ 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


SFXPath::GetAbsolute
絶対パスを文字列で取得します。
[ 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

参照

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


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

戻り値

絶対パスが設定された SFXPath クラスを返します。

解説

相対パスが設定されていると、絶対パスへの変換を行います。

使用例

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

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

参照

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


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

戻り値

設定されているパスの拡張子を返します。

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

使用例

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
親ディレクトリのパスを文字列で取得します。
[ 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/./../ 

参照

SFXPath::Get | SFXPath::GetParentPath


SFXPath::GetParentPath
親ディレクトリのパスを取得します。
[ public, const ]
SFXPath GetParentPath(Void);

解説

現在のパスがファイルを指しているときは、ファイルが存在するディレクトリのパス、 ディレクトリを指しているときは、1つ上の階層のディレクトリのパスを返します。

使用例

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

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

参照

SFXPath::Get | SFXPath::GetParent


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

戻り値

BREW 3.0,3.1 環境では fs:/~/ 、 それ以前の環境では / を返します。

参照

SFXPath::IsHomeDirectory


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

戻り値

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

参照

SFXPath::GetAbsolute SFXPath::GetAbsolutePath


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

戻り値

  • ディレクトリのとき : true
  • ファイルのとき : false

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

戻り値

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

解説

ホームディレクトリとは、 BREW 3.0,3.1 環境では fs:/~/ 、 それ以前の環境では / を指します。

IsHomeDirectory 関数は、 BREW 3.0,3.1 環境ではパスが fs:/~/ もしくは / であるかを調べます。 それ以前の環境ではパスが / であるかを調べます。

参照

SFXPath::HomeDirectoryPath


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

戻り値

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

解説

ルートディレクトリとは、 BREW 3.0,3.1 環境では fs:/ 、 それ以前の環境では / を指します。

IsRootDirectory 関数は、 BREW 3.0,3.1 環境ではパスが fs:/ もしくは / であるかを調べます。 それ以前の環境ではパスが / であるかを調べます。

参照

SFXPath::RootDirectoryPath


SFXPath::Normalize
パスを正規化します。
[ 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/" 

参照

SFXPath::NormalizePath


SFXPath::NormalizePath
正規化したパスを取得します。
[ 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

参照

SFXPath::Normalize


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

戻り値

ルート ディレクトリのパスを返します。 BREW 3.0,3.1 環境では fs:/ 、 それ以前の環境では / が設定されたパスを返します。

参照

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
  • 拡張子が null のとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

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

使用例

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
  • 名前が null のとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

ディレクトリには拡張子が無いので、 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);

解説

パスがファイルを指している場合、最後に / を付加してディレクトリとして扱うことができます。

参照

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


SFXPath::ToFile
現在のパスをファイルとして解釈します。
[ public ]
Void ToFile(Void);

解説

パスがディレクトリを指している場合、最後の / を除去してファイルとして扱うことができます。

参照

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


SFXPath::operator=
パスを代入します。
[ public ]
SFXPathRef operator=(
    SFXPathConstRef param   // コピー元のパス
);

参照

SFXPath::SFXPath | SFXPath::Set


SFXPath::operator==
== の関係を判定します。
[ public, friend ]
Bool operator==(
    SFXPathConstRef left    // 比較するパス
    SFXPathConstRef right   // 比較するパス
);

戻り値

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

参照

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


SFXPath::operator!=
!= の関係を判定します。
[ public, friend ]
Bool operator!=(
    SFXPathConstRef left    // 比較するパス
    SFXPathConstRef right   // 比較するパス
);

戻り値

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

解説

パスが等しいとは、パスが同じファイルやディレクトリを指しています。

参照

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