CPathT 类

此类表示路径。

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

template <typename StringType>
class CPathT

参数

StringType
用于路径的 ATL/MFC 字符串类(请参阅 CStringT)。

成员

公共 Typedef

名称 描述
CPathT::PCXSTR 常量字符串类型。
CPathT::PXSTR 一种字符串类型。
CPathT::XCHAR 一个字符类型。

公共构造函数

名称 描述
CPathT::CPathT 路径的构造函数。

公共方法

名称 描述
CPathT::AddBackslash 调用此方法可在字符串末尾添加反斜杠,以便为路径创建正确的语法。
CPathT::AddExtension 调用此方法可将文件扩展名添加到路径。
CPathT::Append 调用此方法可将字符串追加到当前路径。
CPathT::BuildRoot 调用此方法可从给定的驱动器号创建根路径。
CPathT::Canonicalize 调用此方法可将路径转换为规范格式。
CPathT::Combine 调用此方法可将表示目录名的字符串和表示文件路径名的字符串连接成一个路径。
CPathT::CommonPrefix 调用此方法可确定指定的路径是否与当前路径共享公用前缀。
CPathT::CompactPath 调用此方法可通过将路径组件替换为省略号来截断文件路径,以适合给定的像素宽度。
CPathT::CompactPathEx 调用此方法可通过将路径组件替换为省略号来截断文件路径,以适合给定的字符数。
CPathT::FileExists 调用此方法可检查此路径名下的文件是否存在。
CPathT::FindExtension 调用此方法可查找文件扩展名在路径中的位置。
CPathT::FindFileName 调用此方法可查找文件名在路径中的位置。
CPathT::GetDriveNumber 调用此方法可在路径中搜索“A”到“Z”范围内的驱动器号,并返回相应的驱动器号。
CPathT::GetExtension 调用此方法可从路径中获取文件扩展名。
CPathT::IsDirectory 调用此方法可检查路径是否为有效目录。
CPathT::IsFileSpec 调用此方法可在路径中搜索任何路径分隔字符(例如:\)。 如果不存在路径分隔字符,则该路径被视为文件规范路径。
CPathT::IsPrefix 调用此方法可确定路径是否包含 pszPrefix 传递的类型的有效前缀
CPathT::IsRelative 调用此方法可确定路径是否为相对路径。
CPathT::IsRoot 调用此方法可确定路径是否为根目录。
CPathT::IsSameRoot 调用此方法可确定另一个路径是否与当前路径共有一个根组件。
CPathT::IsUNC 调用此方法可确定路径是否为服务器和共享的有效 UNC(通用命名约定)路径。
CPathT::IsUNCServer 调用此方法可确定路径是否仅为服务器的有效 UNC(通用命名约定)路径。
CPathT::IsUNCServerShare 调用此方法可确定路径是否为有效的 UNC(通用命名约定)共享路径 \\server\share
CPathT::MakePretty 调用此方法可将路径转换为全小写字符,使路径具有一致的外观。
CPathT::MatchSpec 调用此方法可在路径中搜索包含通配符匹配类型的字符串。
CPathT::QuoteSpaces 如果路径包含任何空格,请调用此方法将其括在引号中。
CPathT::RelativePathTo 调用此方法可创建从一个文件或文件夹到另一个文件或文件夹的相对路径。
CPathT::RemoveArgs 调用此方法可从路径中删除任何命令行参数。
CPathT::RemoveBackslash 调用此方法可从路径中删除尾部反斜杠。
CPathT::RemoveBlanks 调用此方法可从路径中删除所有前导和尾部空格。
CPathT::RemoveExtension 调用此方法可从路径中删除文件扩展名(如果有)。
CPathT::RemoveFileSpec 调用此方法可从路径中删除尾部文件名和反斜杠(如果有)。
CPathT::RenameExtension 调用此方法可将路径中的文件扩展名替换为新扩展名。 如果文件名不包含扩展名,则扩展名将附加到字符串的末尾。
CPathT::SkipRoot 调用此方法可分析路径(忽略驱动器号或 UNC 服务器/共享路径部分)。
CPathT::StripPath 调用此方法可删除完全限定路径和文件名的路径部分。
CPathT::StripToRoot 调用此方法可删除路径中除根信息之外的所有组成部分。
CPathT::UnquoteSpaces 调用此方法可删除路径开头和末尾的引号。

公共运算符

“属性” 描述
CPathT::operator const StringType & 使用此运算符可将对象视为字符串。
CPathT::operator CPathT::PCXSTR 使用此运算符可将对象视为字符串。
CPathT::operator StringType & 使用此运算符可将对象视为字符串。
CPathT::operator += 此运算符将字符串追加到路径。

公共数据成员

“属性” 描述
CPathT::m_strPath 路径。

备注

CPathCPathACPathWCPathT 的实例,其定义如下:

typedef CPathT< CString > CPath;

typedef CPathT< CStringA > CPathA;

typedef CPathT< CStringW > CPathW;

要求

标头:atlpath.h

CPathT::AddBackslash

调用此方法可在字符串末尾添加反斜杠,以便为路径创建正确的语法。 如果路径已包含尾部反斜杠,则不会添加反斜杠。

void AddBackslash();

备注

有关详细信息,请参阅 PathAddBackSlash

CPathT::AddExtension

调用此方法可将文件扩展名添加到路径。

BOOL AddExtension(PCXSTR pszExtension);

参数

pszExtension
要添加的文件扩展名。

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

备注

有关详细信息,请参阅 PathAddExtension

CPathT::Append

调用此方法可将字符串追加到当前路径。

BOOL Append(PCXSTR pszMore);

参数

pszMore
要追加的字符串。

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

注解

有关详细信息,请参阅 PathAppend

CPathT::BuildRoot

调用此方法可从给定的驱动器号创建根路径。

void BuildRoot(int iDrive);

参数

iDrive
驱动器号(0 为 A:,1 为 B:,依此类推)。

注解

有关详细信息,请参阅 PathBuildRoot

CPathT::Canonicalize

调用此方法可将路径转换为规范格式。

void Canonicalize();

备注

有关详细信息,请参阅 PathCanonicalize

CPathT::Combine

调用此方法可将表示目录名的字符串和表示文件路径名的字符串连接成一个路径。

void Combine(PCXSTR pszDir, PCXSTR  pszFile);

参数

pszDir
目录路径。

pszFile
文件路径。

备注

有关详细信息,请参阅 PathCombine

CPathT::CommonPrefix

调用此方法可确定指定的路径是否与当前路径共享公用前缀。

CPathT<StringType> CommonPrefix(PCXSTR pszOther);

参数

pszOther
要与当前路径进行比较的路径。

返回值

返回公用前缀。

备注

前缀为以下类型之一:"C:\\", ".", "..", "..\\"。 有关详细信息,请参阅 PathCommonPrefix

CPathT::CompactPath

调用此方法可通过将路径组件替换为省略号来截断文件路径,以适合给定的像素宽度。

BOOL CompactPath(HDC hDC, UINT nWidth);

参数

hDC
用于字体指标的设备上下文。

nWidth
强制字符串适应的宽度(以像素为单位)。

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

备注

有关详细信息,请参阅 PathCompactPath

CPathT::CompactPathEx

调用此方法可通过将路径组件替换为省略号来截断文件路径,以适合给定的字符数。

BOOL CompactPathEx(UINT nMaxChars, DWORD dwFlags = 0);

参数

nMaxChars
要包含在新字符串中的最大字符数,包括结尾的 NULL 字符。

dwFlags
保留。

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

备注

有关详细信息,请参阅 PathCompactPathEx

CPathT::CPathT

构造函数。

CPathT(PCXSTR pszPath);
CPathT(const CPathT<StringType>& path);
CPathT() throw();

参数

pszPath
指向路径字符串的指针。

路径
路径字符串。

CPathT::FileExists

调用此方法可检查此路径名下的文件是否存在。

BOOL FileExists() const;

返回值

如果该文件存在,则返回 TRUE,否则返回 FALSE。

注解

有关详细信息,请参阅 PathFileExists

CPathT::FindExtension

调用此方法可查找文件扩展名在路径中的位置。

int FindExtension() const;

返回值

返回扩展名前面的“.”的位置。 如果未找到扩展名,则返回 -1。

注解

有关详细信息,请参阅 PathFindExtension

CPathT::FindFileName

调用此方法可查找文件名在路径中的位置。

int FindFileName() const;

返回值

返回文件名的位置。 如果未找到文件名,则返回 -1。

备注

有关详细信息,请参阅 PathFindFileName

CPathT::GetDriveNumber

调用此方法可在路径中搜索“A”到“Z”范围内的驱动器号,并返回相应的驱动器号。

int GetDriveNumber() const;

返回值

如果路径包含驱动器号,则返回从 0 到 25 的整数(对应于“A”到“Z”)形式的驱动器号,否则返回 -1。

备注

有关详细信息,请参阅 PathGetDriveNumber

CPathT::GetExtension

调用此方法可从路径中获取文件扩展名。

StringType GetExtension() const;

返回值

返回文件扩展名。

CPathT::IsDirectory

调用此方法可检查路径是否为有效目录。

BOOL IsDirectory() const;

返回值

如果路径是目录,则返回非零值 (16),否则返回 FALSE。

备注

有关详细信息,请参阅 PathIsDirectory

CPathT::IsFileSpec

调用此方法可在路径中搜索任何路径分隔字符(例如:\)。 如果不存在路径分隔字符,则该路径被视为文件规范路径。

BOOL IsFileSpec() const;

返回值

如果路径中不包含路径分隔字符,则返回 TRUE;如果包含路径分隔字符,则返回 FALSE。

备注

有关详细信息,请参阅 PathIsFileSpec

CPathT::IsPrefix

调用此方法可确定路径是否包含 pszPrefix 传递的类型的有效前缀

BOOL IsPrefix(PCXSTR pszPrefix) const;

参数

pszPrefix
要搜索的前缀。 前缀为以下类型之一:"C:\\", ".", "..", "..\\"。

返回值

如果路径包含前缀,则返回 TRUE,否则返回 FALSE。

备注

有关详细信息,请参阅 PathIsPrefix

CPathT::IsRelative

调用此方法可确定路径是否为相对路径。

BOOL IsRelative() const;

返回值

如果路径是相对路径,则返回 TRUE;如果是绝对路径,则返回 FALSE。

备注

有关详细信息,请参阅 PathIsRelative

CPathT::IsRoot

调用此方法可确定路径是否为根目录。

BOOL IsRoot() const;

返回值

如果路径是根目录,则返回 TRUE,否则返回 FALSE。

注解

有关详细信息,请参阅 PathIsRoot

CPathT::IsSameRoot

调用此方法可确定另一个路径是否与当前路径共有一个根组件。

BOOL IsSameRoot(PCXSTR pszOther) const;

参数

pszOther
另一个路径。

返回值

如果两个字符串包含同一根组件,则返回 TRUE,否则返回 FALSE。

备注

有关详细信息,请参阅 PathIsSameRoot

CPathT::IsUNC

调用此方法可确定路径是否为服务器和共享的有效 UNC(通用命名约定)路径。

BOOL IsUNC() const;

返回值

如果路径是有效的 UNC 路径,则返回 TRUE,否则返回 FALSE。

备注

有关详细信息,请参阅 PathIsUNC

CPathT::IsUNCServer

调用此方法可确定路径是否仅为服务器的有效 UNC(通用命名约定)路径。

BOOL IsUNCServer() const;

返回值

如果字符串是仅适用于服务器的有效 UNC 路径(无共享名),则返回 TRUE,否则返回 FALSE。

备注

有关详细信息,请参阅 PathIsUNCServer

CPathT::IsUNCServerShare

调用此方法可确定路径是否为有效的 UNC(通用命名约定)共享路径 \\server\ share

BOOL IsUNCServerShare() const;

返回值

如果路径采用 \\server\ share 格式,则返回 TRUE,否则返回 FALSE

备注

有关详细信息,请参阅 PathIsUNCServerShare

CPathT::m_strPath

路径。

StringType m_strPath;

备注

StringTypeCPathT 的模板参数。

CPathT::MakePretty

调用此方法可将路径转换为全小写字符,使路径具有一致的外观。

BOOL MakePretty();

返回值

如果路径已转换,则返回 TRUE,否则返回 FALSE。

备注

有关详细信息,请参阅 PathMakePretty

CPathT::MatchSpec

调用此方法可在路径中搜索包含通配符匹配类型的字符串。

BOOL MatchSpec(PCXSTR pszSpec) const;

参数

pszSpec
指向包含要搜索的文件类型的以 null 结尾的字符串的指针。 例如,若要测试当前路径下的文件是否为 DOC 文件,应将 pszSpec 设置为“*.doc”

返回值

如果字符串匹配,则返回 TRUE,否则返回 FALSE。

备注

有关详细信息,请参阅 PathMatchSpec

CPathT::operator +=

此运算符将字符串追加到路径。

CPathT<StringType>& operator+=(PCXSTR pszMore);

参数

pszMore
要追加的字符串。

返回值

返回更新的路径。

CPathT::operator const StringType &

使用此运算符可将对象视为字符串。

operator const StringType&() const throw();

返回值

返回表示此对象管理的当前路径的字符串。

CPathT::operator CPathT::PCXSTR

使用此运算符可将对象视为字符串。

operator PCXSTR() const throw();

返回值

返回表示此对象管理的当前路径的字符串。

CPathT::operator StringType &

使用此运算符可将对象视为字符串。

operator StringType&() throw();

返回值

返回表示此对象管理的当前路径的字符串。

CPathT::PCXSTR

常量字符串类型。

typedef StringType::PCXSTR PCXSTR;

备注

StringTypeCPathT 的模板参数。

CPathT::PXSTR

一种字符串类型。

typedef StringType::PXSTR PXSTR;

注解

StringTypeCPathT 的模板参数。

CPathT::QuoteSpaces

如果路径包含任何空格,请调用此方法将其括在引号中。

void QuoteSpaces();

备注

有关详细信息,请参阅 PathQuoteSpaces

CPathT::RelativePathTo

调用此方法可创建从一个文件或文件夹到另一个文件或文件夹的相对路径。

BOOL RelativePathTo(
    PCXSTR pszFrom,
    DWORD dwAttrFrom,
    PCXSTR pszTo,
    DWORD dwAttrTo);

参数

pszFrom
相对路径的起点。

dwAttrFrom
pszFrom 的文件属性。 如果此值包含 FILE_ATTRIBUTE_DIRECTORY,则假定 pszFrom 是一个目录;否则,假定 pszFrom 是一个文件

pszTo
相对路径的终点。

dwAttrTo
pszTo 的文件属性。 如果此值包含 FILE_ATTRIBUTE_DIRECTORY,则假定 pszTo 是一个目录;否则,假定 pszTo 是一个文件

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

备注

有关详细信息,请参阅 PathRelativePathTo

CPathT::RemoveArgs

调用此方法可从路径中删除任何命令行参数。

void RemoveArgs();

备注

有关详细信息,请参阅 PathRemoveArgs

CPathT::RemoveBackslash

调用此方法可从路径中删除尾部反斜杠。

void RemoveBackslash();

备注

有关详细信息,请参阅 PathRemoveBackslash

CPathT::RemoveBlanks

调用此方法可从路径中删除所有前导和尾部空格。

void RemoveBlanks();

注解

有关详细信息,请参阅 PathRemoveBlanks

CPathT::RemoveExtension

调用此方法可从路径中删除文件扩展名(如果有)。

void RemoveExtension();

备注

有关详细信息,请参阅 PathRemoveExtension

CPathT::RemoveFileSpec

调用此方法可从路径中删除尾部文件名和反斜杠(如果有)。

BOOL RemoveFileSpec();

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

备注

有关详细信息,请参阅 PathRemoveFileSpec

CPathT::RenameExtension

调用此方法可将路径中的文件扩展名替换为新扩展名。 如果文件名不包含扩展名,则扩展名将附加到路径的末尾。

BOOL RenameExtension(PCXSTR pszExtension);

参数

pszExtension
新的文件扩展名,前面带有“.”字符。

返回值

如果成功,则返回 TRUE;如果失败,则返回 FALSE。

注解

有关详细信息,请参阅 PathRenameExtension

CPathT::SkipRoot

调用此方法可分析路径,这会忽略驱动器号或 UNC(通用命名约定)服务器/共享路径部分。

int SkipRoot() const;

返回值

返回根目录(驱动器号或 UNC 服务器/共享)后面的子路径的开头位置。

备注

有关详细信息,请参阅 PathSkipRoot

CPathT::StripPath

调用此方法可删除完全限定路径和文件名的路径部分。

void StripPath();

备注

有关详细信息,请参阅 PathStripPath

CPathT::StripToRoot

调用此方法可删除路径中除根信息之外的所有组成部分。

BOOL StripToRoot();

返回值

如果在路径中找到有效的驱动器号,则返回 TRUE,否则返回 FALSE。

注解

有关详细信息,请参阅 PathStripToRoot

CPathT::UnquoteSpaces

调用此方法可删除路径开头和末尾的引号。

void UnquoteSpaces();

备注

有关详细信息,请参阅 PathUnquoteSpaces

CPathT::XCHAR

一个字符类型。

typedef StringType::XCHAR XCHAR;

备注

StringTypeCPathT 的模板参数。

另请参阅


CStringT 类