YSTest: YSLib::IO 命名空间参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 命名空间列表
- 命名空间成员

类 | 类型定义 | 函数 | 变量
YSLib::IO 命名空间参考

## 类

class | Path
| 路径。 更多...
struct | PathTraits
| 文件路径特征。 更多...
class | SharedInputMappedFileStream
| 共享锁定的文件映射输入流。 更多...
class | UniqueLockedOutputFileStream
| 独占锁定的文件输出流。 更多...

## 类型定义

using | NativePathView = basic_string_view< HDirectory::NativeChar >
using | ypath = ystdex::path< vector< String >, PathTraits >

## 函数

yconstexpr const size_t | MaxPathLength (yimpl(1<< 10))
| 默认目录路径长度。 更多...
const string &path const String &path class class class class typename _tParams auto | TraverseTree (_func f, const Path &dst, const Path &src, _tParams &&...args) -> decltype(f(std::declval< Path & >(), std::declval< Path & >(), std::forward< _tParams >(args)...))
const Path &pth const string &pth vector< String > &YF_API NodeCategory | ClassifyNode (const Path &)
| 按文件系统节点类别对路径分类。 更多...
UniqueFile | OpenFile (const char *filename, int omode, mode_t pmode)
| ImplDeDtor (SharedInputMappedFileStream) UniqueLockedOutputFileStream
Path | MakeNormalizedAbsolute (const Path &pth, size_t init_size)
bool | VerifyDirectory (const char *path)
bool | VerifyDirectory (const char16_t *path)
void | EnsureDirectory (const Path &pth)
void | CopyFile (UniqueFile p_dst, const char *src)
void | CopyFile (const char *dst, FileDescriptor src_fd, mode_t dst_mode, size_t allowed_links, bool share)
void | CopyFile (const char *dst, const char *src, mode_t dst_mode, size_t allowed_links, bool share)
void | CopyFile (const char *dst, FileDescriptor src_fd, CopyFileHandler f, mode_t dst_mode, size_t allowed_links, bool share)
void | CopyFile (const char *dst, const char *src, CopyFileHandler f, mode_t dst_mode, size_t allowed_links, bool share)
void | ListFiles (const Path &pth, vector< String > &lst)
template<class _tString >
_tString | GetExtensionOf (const _tString &fname)
| 取扩展名。 更多...

## 变量

YF_API | int
| IsAbsolute
| PDefH (bool, IsAbsolute, const string &path) ImplRet(IsAbsolute(path.c_str())) inline PDefH(bool
| 判断路径表示绝对路径。 更多...
const String &path | ImplRet (IsAbsolute(path.GetMBCS())) template< typename _type > inline bool IsRelative(const _type &arg)
| 判断路径表示相对路径（包括空路径）。 更多...
template<class _tString >
ystdex::decay_t< _tString > | NormalizeDirectoryPathTail (_tString &&str, typename ystdex::string_traits< _tString >::const_pointer tail=&ystdex::to_array< typename ystdex::string_traits< _tString >::value_type >("/\\")[0])
| 目录路径结束正规化：保证以一个分隔符结束。 更多...
template<class _tPath , typename _func , class _tString = typename _tPath::value_type, class _tTraits = typename _tPath::traits_type>
_tPath | ParsePath (const _tString &sv, _func f, _tPath res={})
| 解析字符串为路径。 更多...
template<class _tPath , class _tString = typename _tPath::value_type, class _tTraits = typename _tPath::traits_type>
_tPath | ParsePath (const _tString &sv, _tPath res={})
using | CopyFileHandler = std::function< void(FileDescriptor, FileDescriptor)>
| 复制文件处理器：通知文件复制事件。 更多...
const auto | PreserveModificationTime (ystdex::bind_forward(&FileDescriptor::SetModificationTime,&FileDescriptor::GetModificationTime))
| 保持修改时间。 更多...
const auto | PreserveModificationAndAccessTime (ystdex::bind_forward(&FileDescriptor::SetModificationAndAccessTime,&FileDescriptor::GetModificationAndAccessTime))
| 保持修改和访问时间。 更多...
YF_API | mode_t = 0)
YF_API const char *YF_API | FileDescriptor
YF_API const char *YF_API | size_t = 1
YF_API const char *YF_API | bool = {})
YF_API void | CopyFile (UniqueFile, FileDescriptor)
| 复制文件。 更多...
YF_API | YB_NONNULL (2) void CopyFile(UniqueFile

异常

  std::system_error | 打开文件失败。

更多...

YF_API | YB_NONNULL (1, 2) void CopyFile(const char *
| DeleteTree
template<typename... _tParams>
void | CopyTree (const Path &dst, const Path &src, _tParams &&...args)
| 复制目录树。 更多...
YF_API void | ClearTree (const Path &)

异常

  std::system_error | 路径指向的不是一个目录或删除失败。

更多...

| PDefH (void, ClearTree, const string &pth) ImplRet(ClearTree(Path(pth))) inline PDefH(void
| 删除参数指定路径的目录树。 更多...
const Path &pth | ImplExpr (ClearTree(pth), Remove(string(pth).c_str())) inline PDefH(void
const Path &pth const string &pth | ImplExpr (DeleteTree(Path(pth))) YF_API void ListFiles(const Path &

遍历目录中的项目，更新至列表。

异常

  std::system_error | 操作失败。

更多...

## 详细描述

自从
  build 639

## 类型定义说明

YF_API const char YSLib::IO::CopyFileHandler

复制文件处理器：通知文件复制事件。

自从
  build 651

注解
  函数参数分别对应目标和源。

自从
  build 651

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

using YSLib::IO::NativePathView = typedef basic_string_view<HDirectory::NativeChar>

自从
  build 648

在文件 YAdaptor.h 第 450 行定义.

using YSLib::IO::ypath = typedef ystdex::path<vector<String>, PathTraits>

自从
  build 409

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

## 函数说明

NodeCategory YSLib::IO::ClassifyNode | ( | const Path & | pth | ) |

按文件系统节点类别对路径分类。

自从
  build 410

待办事项:
  支持目录和常规文件外的其它类别。

在文件 YSLib/Service/FileSystem.cpp 第 204 行定义.

参考 NPL::c_str(), platform_ex::Windows::Directory, ystdex::empty, platform::KeyCodes::Win32::Empty, ystdex::parent, ystdex::self, platform::ufexists() , 以及 VerifyDirectory().

函数调用图:

void YSLib::IO::ClearTree | ( | const Path & | pth | ) |

异常

  std::system_error | 路径指向的不是一个目录或删除失败。

清空参数指定路径的目录树内容。

自从
  build 639

在文件 YSLib/Service/FileSystem.cpp 第 181 行定义.

参考 CHRLib::c, NPL::c_str(), DeleteTree , 以及 platform_ex::Windows::Directory.

函数调用图:

void YSLib::IO::CopyFile | ( | UniqueFile | p_dst,
|  | const char * | src
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 142 行定义.

参考 CopyFile().

函数调用图:

void YSLib::IO::CopyFile | ( | const char * | dst,
|  | FileDescriptor | src_fd,
|  | mode_t | dst_mode,
|  | size_t | allowed_links,
|  | bool | share
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 147 行定义.

参考 platform::EnsureUniqueFile(), platform::Nonnull() , 以及 platform::FileDescriptor::WriteContent().

函数调用图:

void YSLib::IO::CopyFile | ( | const char * | dst,
|  | const char * | src,
|  | mode_t | dst_mode,
|  | size_t | allowed_links,
|  | bool | share
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 154 行定义.

参考 CopyFile().

函数调用图:

void YSLib::IO::CopyFile | ( | const char * | dst,
|  | FileDescriptor | src_fd,
|  | CopyFileHandler | f,
|  | mode_t | dst_mode,
|  | size_t | allowed_links,
|  | bool | share
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 160 行定义.

参考 platform::EnsureUniqueFile(), CHRLib::f(), platform::Nonnull() , 以及 platform::FileDescriptor::WriteContent().

函数调用图:

void YSLib::IO::CopyFile | ( | const char * | dst,
|  | const char * | src,
|  | CopyFileHandler | f,
|  | mode_t | dst_mode,
|  | size_t | allowed_links,
|  | bool | share
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 172 行定义.

参考自 CopyFile().

这是这个函数的调用关系图:

void YSLib::IO::CopyFile | ( | UniqueFile | p_dst,
|  | FileDescriptor | src_fd
| ) |  |

复制文件。

前置条件
  间接断言：表示目标和源的参数非空。

注解
  第一参数表示目标，第二参数表示源。
  mode_t 参数依次表示打开目标和源的权限模式。
  不复制元数据。

参见
  $2015-09 @ Documentation::Workflow::Annual2015.

自从
  build 648

注解
  不清空目标。

自从
  build 637

在文件 YSLib/Service/FileSystem.cpp 第 137 行定义.

参考 platform::Nonnull() , 以及 platform::FileDescriptor::WriteContent().

参考自 CopyTree().

函数调用图:

这是这个函数的调用关系图:
template<typename... _tParams>

void YSLib::IO::CopyTree | ( | const Path & | dst,
|  | const Path & | src,
|  | _tParams &&... | args
| ) |  |

复制目录树。

注解
  失败时立刻终止操作。

警告
  不检查无限递归调用。

注解
  使用 ADL `TraverseChildren` 递归遍历。

自从
  build 648

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

参考 CHRLib::args, NPL::c_str(), CopyFile(), NPL::dst , 以及 TraverseTree().

函数调用图:

void YSLib::IO::EnsureDirectory | ( | const Path & | pth | ) |

related

在文件 YSLib/Service/FileSystem.cpp 第 106 行定义.

参考 platform::Descriptions::Err, CHRLib::MakeMBCS(), YSLib::UI::name, ystdex::throw_error(), platform::umkdir(), VerifyDirectory(), yfsig , 以及 YTraceDe.

参考自 TraverseTree().

函数调用图:

这是这个函数的调用关系图:
template<class _tString >

_tString YSLib::IO::GetExtensionOf | ( | const _tString & | fname | ) |

取扩展名。

注解
  非贪婪匹配。

自从
  build 410
  build 599

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

参考 ystdex::find_suffix().

函数调用图:

YSLib::IO::ImplDeDtor | ( | SharedInputMappedFileStream |  | ) |

在文件 File.cpp 第 54 行定义.

const Path& pth YSLib::IO::ImplExpr | ( | ClearTree(pth) | ,
|  | Remove(string(pth).c_str()) |
| ) |  |

自从
  build 593

const Path& pth const string& pth YSLib::IO::ImplExpr | ( | DeleteTree(Path(pth)) |  | ) | const

遍历目录中的项目，更新至列表。

异常

  std::system_error | 操作失败。

自从
  build 538

const String& path YSLib::IO::ImplRet | ( | IsAbsolute(path.GetMBCS()) |  | ) | const

判断路径表示相对路径（包括空路径）。

注解
  使用 ADL IsAbsolute 。

自从
  build 652

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

参考 IsAbsolute.

void YSLib::IO::ListFiles | ( | const Path & | pth,
|  | vector< String > & | lst
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 193 行定义.

参考 CHRLib::c, platform_ex::Windows::Directory , 以及 YSLib::IO::PathTraits::is_parent().

参考自 YSLib::UI::FileBox::ListItems().

函数调用图:

这是这个函数的调用关系图:

Path YSLib::IO::MakeNormalizedAbsolute | ( | const Path & | pth,
|  | size_t | init_size
| ) |  |

在文件 YSLib/Service/FileSystem.cpp 第 60 行定义.

参考 platform::Descriptions::Debug, IsAbsolute, YSLib::YAssert() , 以及 YTraceDe.

函数调用图:

yconstexpr const size_t YSLib::IO::MaxPathLength | ( | yimpl(1<< 10) |  | ) |

默认目录路径长度。

注解
  适合一般情形分配空间大小。

自从
  build 542

参考自 YReader::FetchDefaultShellDirectory().

这是这个函数的调用关系图:
template<class _tString >

ystdex::decay_t<_tString> YSLib::IO::NormalizeDirectoryPathTail | ( | _tString && | str,
|  | typename ystdex::string_traits< _tString >::const_pointer | tail = `&ystdex::to_array< typename ystdex::string_traits<_tString>::value_type>("/\\")[0]`
| ) |  |

inline

目录路径结束正规化：保证以一个分隔符结束。

注解
  兼容根目录。

自从
  build 540

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

参考 YSLib::Text::str, platform::tail, YSLib::YAssert() , 以及 yforward.

函数调用图:

UniqueFile YSLib::IO::OpenFile | ( | const char * | filename,
|  | int | omode,
|  | mode_t | pmode
| ) |  |

在文件 File.cpp 第 38 行定义.

参考 ystdex::throw_error() , 以及 platform::uopen().

函数调用图:
template<class _tPath , typename _func , class _tString = typename _tPath::value_type, class _tTraits = typename _tPath::traits_type>

_tPath YSLib::IO::ParsePath | ( | const _tString & | sv,
|  | _func | f,
|  | _tPath | res = `{}`
| ) |  |

解析字符串为路径。

注解
  忽略空路径组件。
  使用 ADL cbegin 和 cend 。

自从
  build 708

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

template<class _tPath , class _tString = typename _tPath::value_type, class _tTraits = typename _tPath::traits_type>

_tPath YSLib::IO::ParsePath | ( | const _tString & | sv,
|  | _tPath | res = `{}`
| ) |  |

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

YSLib::IO::PDefH | ( | bool | ,
|  | IsAbsolute | ,
|  | const string & | path
| ) |  |

inline

判断路径表示绝对路径。

自从
  build 410

YSLib::IO::PDefH | ( | void | ,
|  | ClearTree | ,
|  | const string & | pth
| ) |  |

inline

删除参数指定路径的目录树。

const auto YSLib::IO::PreserveModificationAndAccessTime | ( | ystdex::bind_forward &::,&::GetModificationAndAccessTime |  | ) |

保持修改和访问时间。

const auto YSLib::IO::PreserveModificationTime | ( | ystdex::bind_forward &::,&::GetModificationTime |  | ) |

保持修改时间。

参见
  CopyFileHandler

const string& path const String& path class class class class typename _tParams auto YSLib::IO::TraverseTree | ( | _func | f,
|  | const Path & | dst,
|  | const Path & | src,
|  | _tParams &&... | args
| ) |  | -> decltype(f(std::declval<Path&>(), std::declval<Path&>(), std::forward<_tParams>(args)...))

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

参考 CHRLib::args, bool, platform_ex::Windows::Directory, NPL::dst, EnsureDirectory(), CHRLib::f() , 以及 YSLib::UI::name.

参考自 CopyTree().

函数调用图:

这是这个函数的调用关系图:

bool YSLib::IO::VerifyDirectory | ( | const char * | path | ) |

在文件 YSLib/Service/FileSystem.cpp 第 95 行定义.

参考自 YSLib::LoadComponents() , 以及 YSLib::Drawing::FontCache::LoadTypefaces().

这是这个函数的调用关系图:

bool YSLib::IO::VerifyDirectory | ( | const char16_t * | path | ) |

在文件 YSLib/Service/FileSystem.cpp 第 100 行定义.

参考自 ClassifyNode() , 以及 EnsureDirectory().

这是这个函数的调用关系图:

YF_API YSLib::IO::YB_NONNULL | ( | 1 |  | ) | const

related

打开文件。

检查参数指定的 MS-DOS 风格路径冒号。

生成别名校验和。

移除文件链接。

前置条件
  路径参数非空。

异常

  std::system_error | 打开失败。

返回
  非空的文件指针。

参见
  uopen

自从
  build 639

前置条件
  间接断言：参数非空。

异常

  std::system_error | 文件存在且操作失败。

自从
  build 713

参见
  EnsureUniqueFile

注解
  除第二参数外含义和 EnsureUniqueFile 的参数依次相同。

自从
  build 639

异常

  std::bad_function_call | 第三参数为空。

注解
  第三参数指定成功复制内容后关闭目标文件前的操作。
  除第二和第三参数外含义和 EnsureUniqueFile 的参数依次相同。

自从
  build 651

在文件 File.h 第 62 行定义.

YF_API YSLib::IO::YB_NONNULL | ( | 2 |  | ) |

异常

  std::system_error | 打开文件失败。

注解
  不清空目标。

YF_API YSLib::IO::YB_NONNULL | ( | 1 | ,
|  | 2 |
| ) |  | const

## 变量说明

YF_API const char YSLib::IO::bool = {})

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

参考自 TraverseTree().

const Path &pth YSLib::IO::DeleteTree

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

参考自 ClearTree().

YF_API YSLib::IO::FileDescriptor

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

参考自 platform::SetBinaryIO().

YF_API YSLib::IO::int

在文件 File.h 第 51 行定义.

参考自 YSLib::Drawing::MultiBitmapData::LockPage(), main(), ystdex::ntctscmp(), ystdex::ntctsicmp(), platform::omode_conv(), platform::omode_convb(), platform::Color::operator Pixel() , 以及 platform::ugetcwd().

YSLib::IO::IsAbsolute

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

参考自 YSLib::IO::PathTraits::AdjustForRoot(), ImplRet() , 以及 MakeNormalizedAbsolute().

YF_API const char YSLib::IO::mode_t = 0)

在文件 File.h 第 51 行定义.

YF_API const char YSLib::IO::size_t = 1

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