YSTest: YSLib::IO::Path类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Public 属性 | Private 成员函数 | 相关函数 | 所有成员列表
YSLib::IO::Path类 参考

路径。 更多...

`#include <FileSystem.h>`

类 YSLib::IO::Path 继承关系图:
[图例]
YSLib::IO::Path 的协作图:
[图例]

## Public 类型

using | iterator = typename base::iterator
using | const_iterator = typename base::const_iterator
using | value_type = typename _tSeqCon::value_type
using | traits_type = _tTraits

## Public 成员函数

| DefDeCtor (Path) explicit Path(ypath pth) ynothrow
| 无参数构造：默认实现。 更多...
template<typename _type , yimpl(typename=ystdex::enable_if_t< ystdex::or_< std::is_constructible< u16string_view, _type >, std::is_constructible< String, _type >>::value >, typename=ystdex::exclude_self_t< Path, _type >) >
| Path (_type &&arg)
template<typename _type >
| Path (_type &&arg, Text::Encoding enc)
template<typename _tIn >
| Path (_tIn first, _tIn last)
template<typename _tElem >
| Path (std::initializer_list< _tElem > il)
| DefDeCopyCtor (Path) DefDeMoveCtor(Path) DefDeDtor(Path) DefDeCopyAssignment(Path) DefDeMoveAssignment(Path) PDefHOp(Path &
| 复制构造：默认实现。 更多...
const Path &pth | ImplRet (GetBaseRef()/=pth, *this) PDefHOp(Path &
const Path &pth const ypath &pth | ImplRet (GetBaseRef()/=pth, *this) template< typename _type
const Path &pth const ypath &pth | yimpl (typename=ystdex::enable_if_t< ystdex::or_< std::is_constructible< u16string_view, _type >, std::is_constructible< String, _type >>::value >, typename=ystdex::exclude_self_t< Path, _type >, typename=ystdex::exclude_self_t< ypath, _type >)> Path &operator/
friend | PDefH (void, swap, Path &x, ypath &y) ImplExpr(y.swap(x))
friend | PDefH (void, swap, ypath &x, Path &y) ImplExpr(x.swap(y))
friend | PDefH (void, swap, Path &x, Path &y) ImplExpr(y.GetBaseRef().swap(x)) friend PDefH(String
void | filter_self ()
bool | has_leaf () const
bool | has_leaf_nonempty () const
bool | is_absolute () const
bool | is_relative () const
void | merge_parents ()
path & | redirect (const path &pth)
path & | redirect (path &&pth)
bool | remove_leaf ()

## Public 属性

friend | to_string

## Private 成员函数

template<typename _tParam >
auto | AsStringArg (_tParam &&arg) -> yimpl(ystdex::enable_if_t)< std::is_constructible< u16string_view, _tParam >::value, u16string_view >
template<typename _tParam , yimpl(typename=ystdex::enable_if_t< ystdex::and_< ystdex::not_< std::is_constructible< u16string_view, _tParam >>, std::is_constructible< String, _tParam >>::value >) >
String | AsStringArg (_tParam &&arg)
Private 成员函数 继承自 ystdex::path< _tSeqCon, _tTraits >
| path ()=default
template<typename _tParam , typename = enable_if_t<is_constructible<base, const base&, _tParam>::value>>
| path (const path &pth, _tParam &&arg)
template<typename _tParam , typename = enable_if_t<is_constructible<base, base, _tParam>::value>>
| path (path &&pth, _tParam &&arg)
| path (std::initializer_list< value_type > il)
template<typename... _tParams, typename = enable_if_t<sizeof...(_tParams) != 0 && is_constructible<base, std::initializer_list<value_type>, _tParams&&...>::value>>
| path (std::initializer_list< value_type > il, _tParams &&... args)
template<typename... _tParams, typename = enable_if_t<is_constructible<base, _tParams...>::value>>
| path (_tParams &&... args)
template<class _tAlloc , typename... _tParams, typename = enable_if_t< is_constructible<base, _tParams..., const _tAlloc&>::value>>
| path (std::allocator_arg_t, const _tAlloc &a, _tParams &&... args)
| path (const path &)=default
| path (path &&)=default
path & | operator= (const path &pth)
path & | operator= (path &&pth)
path & | operator= (std::initializer_list< value_type > il)
path & | operator/= (const value_type &s)
| 追加路径元素。 更多...
path & | operator/= (value_type &&s)
path & | operator/= (const path &pth)
| 追加路径。 更多...
path & | operator/= (path &&pth)
container_type & | get_container ()
const container_type & | get_container () const
void | filter_self ()
value_type | get_root () const
bool | is_absolute () const
bool | is_relative () const
void | merge_parents ()
bool | has_leaf () const
| 判断移除最后元素是否保持根路径不变。 更多...
bool | has_leaf_nonempty () const
path & | redirect (const path &pth)
| 重定向路径 更多...
path & | redirect (path &&pth)
bool | remove_leaf ()
| 若移除最后元素不会改变根路径，则移除最后的元素。 更多...
bool | root_diverged (const path &pth) const
| 判断参数指定的路径是否和 `*this` 不同而无法直接作为相对路径追加。 更多...
void | swap (path &pth)

## 相关函数

(请注意: 这些不是成员函数.)
PDefH(String, GetExtensionOf, const Path &pth) ImplRet(pth.empty() ? String() YF_API | YB_NONNULL (1) bool VerifyDirectory(const char *)
| 判断路径表示绝对路径。 更多...
相关函数 继承自 ystdex::path< _tSeqCon, _tTraits >
template<class _tSeqCon , class _tTraits >
void | normalize (path< _tSeqCon, _tTraits > &pth)
| 正规化。 更多...

## 额外继承的成员函数

Private 类型 继承自 ystdex::path< _tSeqCon, _tTraits >
using | container_type = _tSeqCon
using | value_type = typename _tSeqCon::value_type
using | traits_type = _tTraits
using | reference = typename _tSeqCon::reference
using | const_reference = typename _tSeqCon::const_reference
using | size_type = typename base::size_type
using | difference_type = typename base::difference_type
using | iterator = typename base::iterator
using | const_iterator = typename base::const_iterator
using | reverse_iterator = typename base::reverse_iterator
using | const_reverse_iterator = typename base::const_reverse_iterator
Private 类型 继承自 ystdex::nested_allocator_base< _tSeqCon >
using | allocator_type = typename _tCon::allocator_type

## 详细描述

路径。

注解
  基于 ystdex::path 。
  不直接支持非单一分隔符的外部表示（如 OpenVMS 文件），需另行预解析转换。

警告
  非虚析构。

参见
  ypath

在文件 YSLib/Service/FileSystem.h 第 215 行定义.

## 成员类型定义说明

## ◆ const_iterator

using ystdex::path< _tSeqCon, _tTraits >::const_iterator = typename base::const_iterator

在文件 path.hpp 第 285 行定义.

## ◆ iterator

using ystdex::path< _tSeqCon, _tTraits >::iterator = typename base::iterator

在文件 path.hpp 第 284 行定义.

## ◆ traits_type

using ystdex::path< _tSeqCon, _tTraits >::traits_type = _tTraits

自从
  build 708

在文件 path.hpp 第 279 行定义.

## ◆ value_type

using ystdex::path< _tSeqCon, _tTraits >::value_type = typename _tSeqCon::value_type

自从
  build 409

在文件 path.hpp 第 277 行定义.

## 构造及析构函数说明

## ◆ Path() [1/4]

template<typename _type , yimpl(typename=ystdex::enable_if_t< ystdex::or_< std::is_constructible< u16string_view, _type >, std::is_constructible< String, _type >>::value >, typename=ystdex::exclude_self_t< Path, _type >) >

YSLib::IO::Path::Path | ( | _type && | arg | ) |

inlineexplicit

前置条件
  间接断言：初始化的视图的路径参数的数据指针非空。

自从
  build 837

在文件 YSLib/Service/FileSystem.h 第 245 行定义.

## ◆ Path() [2/4]

template<typename _type >

YSLib::IO::Path::Path | ( | _type && | arg,
|  | Text::Encoding | enc
| ) |  |

inlineexplicit

自从
  build 730

在文件 YSLib/Service/FileSystem.h 第 251 行定义.

## ◆ Path() [3/4]

template<typename _tIn >

YSLib::IO::Path::Path | ( | _tIn | first,
|  | _tIn | last
| ) |  |

inline

自从
  build 599

在文件 YSLib/Service/FileSystem.h 第 256 行定义.

## ◆ Path() [4/4]

template<typename _tElem >

YSLib::IO::Path::Path | ( | std::initializer_list< _tElem > | il | ) |

inline

自从
  build 599

在文件 YSLib/Service/FileSystem.h 第 261 行定义.

## 成员函数说明

## ◆ AsStringArg() [1/2]

template<typename _tParam , yimpl(typename=ystdex::enable_if_t< ystdex::and_< ystdex::not_< std::is_constructible< u16string_view, _tParam >>, std::is_constructible< String, _tParam >>::value >) >

String YSLib::IO::Path::AsStringArg | ( | _tParam && | arg | ) |

inlineprivate

在文件 YSLib/Service/FileSystem.h 第 362 行定义.

引用了 yforward.

## ◆ AsStringArg() [2/2]

template<typename _tParam >

auto YSLib::IO::Path::AsStringArg | ( | _tParam && | arg | ) | -> yimpl(ystdex::enable_if_t)< std::is_constructible<u16string_view, _tParam>::value, u16string_view>

inlineprivate

自从
  build 837

在文件 YSLib/Service/FileSystem.h 第 353 行定义.

引用了 yforward.

## ◆ DefDeCopyCtor()

YSLib::IO::Path::DefDeCopyCtor | ( | Path |  | ) | &

复制构造：默认实现。

转移构造：默认实现。

复制赋值：默认实现。

自从
  build 295

转移赋值：默认实现。

自从
  build 295

追加路径。

## ◆ DefDeCtor()

YSLib::IO::Path::DefDeCtor | ( | Path |  | ) |

inline

无参数构造：默认实现。

自从
  build 635

在文件 YSLib/Service/FileSystem.h 第 230 行定义.

## ◆ filter_self()

void ystdex::path< _tSeqCon, _tTraits >::filter_self

inline

自从
  build 410

在文件 path.hpp 第 504 行定义.

## ◆ has_leaf()

bool ystdex::path< _tSeqCon, _tTraits >::has_leaf

inline

自从
  build 837

在文件 path.hpp 第 554 行定义.

## ◆ has_leaf_nonempty()

bool ystdex::path< _tSeqCon, _tTraits >::has_leaf_nonempty

inline

自从
  build 837

在文件 path.hpp 第 561 行定义.

## ◆ ImplRet() [1/2]

const Path& pth YSLib::IO::Path::ImplRet | ( | GetBaseRef()/ | = `pth`,
|  | * | this
| ) |  | &

自从
  build 838

## ◆ ImplRet() [2/2]

const Path& pth const ypath& pth YSLib::IO::Path::ImplRet | ( | GetBaseRef()/ | = `pth`,
|  | * | this
| ) |  |

自从
  build 838

## ◆ is_absolute()

bool ystdex::path< _tSeqCon, _tTraits >::is_absolute

inline

在文件 path.hpp 第 519 行定义.

## ◆ is_relative()

bool ystdex::path< _tSeqCon, _tTraits >::is_relative

inline

在文件 path.hpp 第 525 行定义.

## ◆ merge_parents()

void ystdex::path< _tSeqCon, _tTraits >::merge_parents

inline

自从
  build 410

在文件 path.hpp 第 531 行定义.

## ◆ PDefH() [1/3]

YSLib::IO::Path::PDefH | ( | void | ,
|  | swap | ,
|  | Path & | x,
|  | Path & | y
| ) |  |

自从
  build 475

## ◆ PDefH() [2/3]

YSLib::IO::Path::PDefH | ( | void | ,
|  | swap | ,
|  | Path & | x,
|  | ypath & | y
| ) |  |

自从
  build 710

## ◆ PDefH() [3/3]

YSLib::IO::Path::PDefH | ( | void | ,
|  | swap | ,
|  | ypath & | x,
|  | Path & | y
| ) |  |

## ◆ redirect() [1/2]

path& ystdex::path< _tSeqCon, _tTraits >::redirect

inline

自从
  build 837

在文件 path.hpp 第 575 行定义.

## ◆ redirect() [2/2]

path& ystdex::path< _tSeqCon, _tTraits >::redirect

inline

自从
  build 837

在文件 path.hpp 第 588 行定义.

## ◆ remove_leaf()

bool ystdex::path< _tSeqCon, _tTraits >::remove_leaf

inline

自从
  build 837

在文件 path.hpp 第 604 行定义.

## ◆ yimpl()

const Path& pth const ypath& pth YSLib::IO::Path::yimpl | ( | typename | = `ystdex::enable_if_t< ystdex::or_< std::is_constructible< u16string_view, _type >, std::is_constructible< String, _type >>::value >`,
|  | typename | = `ystdex::exclude_self_t< Path, _type >`,
|  | typename | = `ystdex::exclude_self_t< ypath, _type >`
| ) |  | &

引用了 yforward.

## 友元及相关函数文档

## ◆ YB_NONNULL

PDefH (String, GetExtensionOf, const Path& pth) ImplRet(pth.empty() ? String() YF_API YB_NONNULL(1) bool VerifyDirectory(const char *)

related

判断路径表示绝对路径。

自从
  build 410

根据当前工作目录和指定路径取绝对路径。

后置条件
  断言：结果是绝对路径。

返回
  若指定路径为相对路径则为正规化当前工作目录追加此路径，否则为正规化指定路径。

注解
  第二参数指定取当前工作目录指定的起始缓冲区大小。

参见
  IsRelative
  Path::Normalize
  FetchCurrentWorkingDirectory

自从
  build 542

验证路径表示的目录是否存在且可打开。

注解
  受权限限制。

自从
  build 410

在文件 YSLib/Service/FileSystem.h 第 516 行定义.

## 类成员变量说明

## ◆ to_string

friend YSLib::IO::Path::to_string

在文件 YSLib/Service/FileSystem.h 第 461 行定义.

该类的文档由以下文件生成:

- YSLib/Service/FileSystem.h