YSTest: FileSystem.h 文件参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

- 文件列表
- 文件成员

类 | 命名空间 | 类型定义 | 枚举 | 函数 | 变量
YCLib/FileSystem.h 文件参考
`#include "YModules.h"`
`#include <YCLib/Container.h>`
`#include <YCLib/Reference.h>`
`#include <system_error>`
`#include <ystdex/base.h>`
`#include <ystdex/iterator.hpp>`
`#include <ctime>`
`#include <YCLib/Debug.h>`
`#include <ystdex/cstdint.hpp>`
YCLib/FileSystem.h 的引用(Include)关系图:

浏览源代码.

## 类

class | platform::DirectorySession
| 目录会话：表示打开的目录。 更多...
class | platform::DirectorySession::Deleter
class | platform::HDirectory
| 目录句柄：表示打开的目录和内容迭代状态。 更多...
class | platform::FAT::EntryData
| 目录项数据。 更多...

## 命名空间

| platform
| 默认平台命名空间。
| platform::FAT
| 文件分配表接口。
| platform::FAT::FAT16
| FAT16 接口（ FAT12 共享实现）。
| platform::FAT::FAT32
| FAT32 接口。
| platform::FAT::LFN
| 长文件名接口。
| platform_ex
| 平台扩展命名空间。

## 类型定义

using | platform::FAT::EntryDataUnit = std::uint8_t
using | platform::FAT::ClusterIndex = std::uint32_t
using | platform::FAT::VolumeLabel = array< byte, 11 >
| 卷标数据类型。 更多...
using | platform::FAT::FileSize = std::uint32_t
| 文件大小：字节数。 更多...
using | platform::FAT::Timestamp = std::uint16_t
| 时间戳：表示日期和时间的整数类型。 更多...

## 枚举

enum

platform::FAT::FAT16::BPB : size_t {
platform::FAT::FAT16::BS_DrvNum = 36, platform::FAT::FAT16::BS_Reserved1 = 37, platform::FAT::FAT16::BS_BootSig = 38, platform::FAT::FAT16::BS_VolID = 39,
platform::FAT::FAT16::BS_VolLab = 43, platform::FAT::FAT16::BS_FilSysType = 54, platform::FAT::FAT16::_reserved_zero_448 = 62, platform::FAT::FAT16::Signature_word = 510,
platform::FAT::FAT16::_reserved_remained = 512
}

| FAT12 和 FAT16 扩展 BIOS 参数块偏移量。 更多...

enum

platform::FAT::FAT32::BPB : size_t {
platform::FAT::FAT32::BPB_FATSz32 = 36, platform::FAT::FAT32::BPB_ExtFlags = 40, platform::FAT::FAT32::BPB_FSVer = 42, platform::FAT::FAT32::BPB_RootClus = 44,
platform::FAT::FAT32::BPB_FSInfo = 48, platform::FAT::FAT32::BPB_BkBootSec = 50, platform::FAT::FAT32::BPB_Reserved = 52, platform::FAT::FAT32::BS_DrvNum = 64,
platform::FAT::FAT32::BS_Reserved1 = 65, platform::FAT::FAT32::BS_BootSig = 66, platform::FAT::FAT32::BS_VolID = 67, platform::FAT::FAT32::BS_VolLab = 71,
platform::FAT::FAT32::BS_FilSysType = 82, platform::FAT::FAT32::_reserved_zero_420 = 90
}

| FAT32 扩展 BIOS 参数块偏移量。 更多...

enum

platform::FAT::Attribute : EntryDataUnit {
platform::FAT::Attribute::ReadOnly = 0x01, platform::FAT::Attribute::Hidden = 0x02, platform::FAT::Attribute::System = 0x04, platform::FAT::Attribute::VolumeID = 0x08,
platform::FAT::Attribute::Directory = 0x10, platform::FAT::Attribute::Archive = 0x20, platform::FAT::Attribute::LongFileName = ReadOnly | Hidden | System | VolumeID
}

| 文件属性。 更多...

enum

platform::FAT::LFN::Offsets {
platform::FAT::LFN::Ordinal = 0x00, platform::FAT::LFN::Char0 = 0x01, platform::FAT::LFN::Char1 = 0x03, platform::FAT::LFN::Char2 = 0x05,
platform::FAT::LFN::Char3 = 0x07, platform::FAT::LFN::Char4 = 0x09, platform::FAT::LFN::Flag = 0x0B, platform::FAT::LFN::Reserved1 = 0x0C,
platform::FAT::LFN::CheckSum = 0x0D, platform::FAT::LFN::Char5 = 0x0E, platform::FAT::LFN::Char6 = 0x10, platform::FAT::LFN::Char7 = 0x12,
platform::FAT::LFN::Char8 = 0x14, platform::FAT::LFN::Char9 = 0x16, platform::FAT::LFN::Char10 = 0x18, platform::FAT::LFN::Reserved2 = 0x1A,
platform::FAT::LFN::Char11 = 0x1C, platform::FAT::LFN::Char12 = 0x1E
}

| 长文件名目录项偏移量。 更多...

enum

: size_t {
platform::FAT::LFN::MaxLength = 256, platform::FAT::LFN::MaxMBCSLength = MaxLength * 3, platform::FAT::LFN::EntryLength = size(OffsetTable), platform::FAT::LFN::AliasEntryLength = 11,
platform::FAT::LFN::MaxAliasMainPartLength = 8, platform::FAT::LFN::MaxAliasExtensionLength = 3, platform::FAT::LFN::MaxAliasLength = MaxAliasMainPartLength + MaxAliasExtensionLength + 2, platform::FAT::LFN::MaxNumericTail = 999999
}

enum | platform::FAT::LFN::EntryValues : EntryDataUnit { platform::FAT::LFN::CaseLowerBasename = 0x08, platform::FAT::LFN::CaseLowerExtension = 0x10, platform::FAT::LFN::LastLongEntry = 0x40 }

## 函数

static yconstexpr const auto | platform::FAT::MaxFileSize (FileSize(0xFFFFFFFF))
| 最大文件大小。 更多...
YF_API std::time_t | platform::FAT::ConvertFileTime (Timestamp, Timestamp) ynothrow
| 转换日期和时间的时间戳为标准库时间类型。 更多...
YF_API pair< Timestamp, Timestamp > | platform::FAT::FetchDateTime () ynothrow
| 取以实时时钟的文件日期和时间。 更多...
YF_API | platform::FAT::YB_NONNULL (1) YB_PURE const char *CheckColons(const char *)
| 检查参数指定的 MS-DOS 风格路径冒号。 更多...
template<typename _tChar >
yconstfn bool | platform::IsColon (_tChar c) ynothrow
template<typename _tChar >
YCL_Tag_constfn YB_STATELESS _tChar | platform::FetchSeparator_P (IDTag< YF_Platform_Win32 >) ynothrow
template<typename _tChar >
YCL_Tag_constfn YB_STATELESS _tChar | platform::FetchSeparator_P (IDTagBase) ynothrow
template<typename _tChar >
yconstfn YB_STATELESS _tChar | platform::FetchSeparator () ynothrow
| platform::YB_NONNULL (1) PDefH(string
| 构造适合表示路径的 `char` 字符串。 更多...
| platform::YB_NONNULL (2) PDefH(string
| 组合消息和函数签名字符串。 更多...
YF_API | platform::YB_NONNULL (1, 2) bool HaveSameContents(const char *
| 比较文件内容相等。 更多...
YF_API bool | platform::IterateLink (string &, size_t &)
| 迭代访问链接：替换非空路径并按需减少允许链接计数。 更多...
YF_API bool | platform::IterateLink (u16string &, size_t &)
YF_API tuple< string, string, bool > | platform::FAT::LFN::ConvertToAlias (const u16string &)
| 转换长文件名为别名。 更多...
| platform::FAT::LFN::PDefH (size_t, FetchLongNameOffset, EntryDataUnit ord) ynothrow ImplRet((size_t(ord &~LastLongEntry)-1U)*EntryLength) YF_API string ConvertToMBCS(const char16_t *path)
| 按指定序数取长文件名偏移。 更多...
YF_API | platform::FAT::LFN::YB_NONNULL (1) EntryDataUnit GenerateAliasChecksum(const EntryDataUnit *) ynothrowv
| 生成别名校验和。 更多...
YF_API bool | platform::FAT::LFN::ValidateName (string_view) ynothrowv
| 检查名称是否为合法的可被 UCS-2 表示的非控制字符组成。 更多...
YF_API void | platform::FAT::LFN::WriteNumericTail (string &, size_t) ynothrowv
| 在指定字符串写前缀字符 '~' 和整数的后缀以作为短文件名。 更多...
yconstexpr const size_t | platform::FAT::EntryDataSize (0x20)
| 目录项数据大小。 更多...

## 变量

_tString ystdex::string_traits< _tString >::const_pointer | platform::tail
const char | platform::FAT::IllegalAliasCharacters [] {"\\/:;*?\"<>|&+,=[] "}
| 非法别名字符。 更多...
yconstexpr const size_t | platform::FAT::LFN::OffsetTable []
| 组成长文件名中的 UCS-2 字符在项中的偏移量表。 更多...
const char | platform::FAT::LFN::IllegalCharacters [] {"\\/:*?\"<>|"}
| 非法长文件名字符。 更多...
const _tString &path | platform::ynothrow
_tString && | platform::path
template<typename _tChar >
YCL_Tag_constfn YB_STATELESS bool | platform::IsSeparator_P (IDTag< YF_Platform_Win32 > tag, _tChar c) ynothrow
template<typename _tChar >
YCL_Tag_constfn YB_STATELESS bool | platform::IsSeparator_P (IDTagBase tag, _tChar c) ynothrow
| platform::YCL_DefPlatformFwdTmpl (IsSeparator, IsSeparator_P) template< typename _tChar > inline YB_NONNULL(2) bool IsAbsolute_P(IDTag< YF_Platform_DS > tag
| 判断指定路径字符串是否表示一个绝对路径。 更多...
template<typename _tChar >
bool | platform::IsAbsolute_P (IDTag< YF_Platform_DS > tag, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
bool | platform::IsAbsolute_P (IDTag< YF_Platform_Win32 > tag, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
bool | platform::IsAbsolute_P (IDTagBase tag, basic_string_view< _tChar > path) ynothrowv
| platform::YCL_DefPlatformFwdTmpl (IsAbsolute, IsAbsolute_P) template< typename _tChar > YB_NONNULL(2) size_t FetchRootNameLength_P(IDTag< YF_Platform_DS > tag
| 取指定路径的文件系统根节点名称的长度。 更多...
| platform::if (!p) p
| platform::while (platform::IsSeparator_P(tag,*p))++p
return | platform::size_t (p-path)
template<typename _tChar >
size_t | platform::FetchRootNameLength_P (IDTag< YF_Platform_DS >, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
size_t | platform::FetchRootNameLength_P (IDTag< YF_Platform_Win32 >, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
size_t | platform::FetchRootNameLength_P (IDTagBase tag, basic_string_view< _tChar > path) ynothrowv
| platform::YCL_DefPlatformFwdTmpl (FetchRootNameLength, FetchRootNameLength_P) template< class _tString > yconstfn bool EndsWithNonSeperator_P(IDTagBase tag
| 判断路径字符串是否以非分隔符结束。 更多...
| platform::YCL_DefPlatformFwdTmpl (EndsWithNonSeperator, EndsWithNonSeperator_P) template< class _tString > YCL_Tag_constfn _tString &&TrimTrailingSeperator_P(IDTag< YF_Platform_Win32 >

enum

platform::FAT::BPB : size_t {
platform::FAT::BS_jmpBoot = 0, platform::FAT::BS_OEMName = 3, platform::FAT::BPB_BytsPerSec = 11, platform::FAT::BPB_SecPerClus = 13,
platform::FAT::BPB_RsvdSecCnt = 14, platform::FAT::BPB_NumFATs = 16, platform::FAT::BPB_RootEntCnt = 17, platform::FAT::BPB_TotSec16 = 19,
platform::FAT::BPB_Media = 21, platform::FAT::BPB_FATSz16 = 22, platform::FAT::BPB_SecPerTrk = 24, platform::FAT::BPB_NumHeads = 26,
platform::FAT::BPB_HiddSec = 28, platform::FAT::BPB_TotSec32 = 32
}

| BIOS 参数块偏移量。 更多...
yconstexpr const size_t | platform::FAT::MinSectorSize (512)
| BIOS 参数块偏移量域 BPB_BytsPerSec 的最值。 更多...
yconstexpr const size_t | platform::FAT::MaxSectorSize (4096)

enum

platform::FAT::FSI : size_t {
platform::FAT::FSI_LeadSig = 0, platform::FAT::FSI_Reserved1 = 4, platform::FAT::FSI_StrucSig = 484, platform::FAT::FSI_Free_Count = 488,
platform::FAT::FSI_Nxt_Free = 492, platform::FAT::FSI_Reserved2 = 496, platform::FAT::FSI_TrailSig = 508
}

| 文件系统信息块偏移量。 更多...
yconstexpr const std::uint32_t | platform::FAT::FSI_LeadSig_Value (0x41615252)
yconstexpr const std::uint32_t | platform::FAT::FSI_StrucSig_Value (0x61417272)
yconstexpr const std::uint32_t | platform::FAT::FSI_TrailSig_Value (0xAA550000)