文件属性常量定义文件系统存储在磁盘上的元数据值,由系统使用,并通过各种文件 I/O API 供开发人员使用。 这些常量允许开发人员检查和设置文件属性,例如只读、隐藏或压缩属性。 有关相关 API 和主题的列表,请参阅 “另请参阅 ”部分。
Example
FILE_BASIC_INFO basicInfo;
BOOL result;
result = GetFileInformationByHandleEx( hFile,
FileBasicInfo,
&basicInfo,
sizeof(basicInfo));
\\...
printf(" File Attributes: ");
PrintFileAttributes(basicInfo.FileAttributes);
\\...
VOID
PrintFileAttributes(
ULONG FileAttributes
)
{
if (FileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
printf("Archive ");
}
if (FileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
printf("Directory ");
}
if (FileAttributes & FILE_ATTRIBUTE_READONLY) {
printf("Read-Only ");
}
}
从 GitHub 上的 Windows 经典示例获取的示例 。
| 常量/值 | Description |
|---|---|
|
只读文件。 应用程序可以读取文件,但无法写入文件或删除该文件。 在目录上不遵循此属性。 |
|
文件或目录已隐藏。 它不包括在普通目录列表中。 |
|
作系统使用部分或独占使用的文件或目录。 |
|
标识目录的句柄。 |
|
作为存档文件或目录的文件或目录。 应用程序通常使用此属性标记文件以供备份或删除。 |
|
此值保留供系统使用。 |
|
未设置其他属性的文件。 此属性仅在单独使用时才有效。 |
|
用于临时存储的文件。 如果有足够的缓存内存可用,文件系统会避免将数据写回到大容量存储,因为通常,应用程序在关闭句柄后删除临时文件。 在这种情况下,系统可以完全避免写入数据。 否则,在句柄关闭后写入数据。 |
|
一个稀疏文件的文件。 |
|
具有关联的重新分析点的文件或目录,或作为符号链接的文件。 |
|
压缩的文件或目录。 对于文件,文件中的所有数据都会压缩。 对于目录,压缩是新创建的文件和子目录的默认值。 |
|
文件的数据不能立即可用。 此属性指示文件数据在物理上移动到脱机存储。 此属性由远程存储使用,这是分层存储管理软件。 应用程序不应任意更改此属性。 |
|
文件或目录不由内容索引服务编制索引。 |
|
已加密的文件或目录。 对于文件,文件中的所有数据流均已加密。 对于目录,加密是新创建的文件和子目录的默认值。 |
|
目录或用户数据流配置为完整性(仅在 ReFS 卷上受支持)。 它不包括在普通目录列表中。 如果文件已重命名,则完整性设置将保留。 如果复制文件,则目标文件将具有完整性集(如果源文件或目标目录具有完整性集)。 Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2012 之前不支持此标志。 |
|
此值保留供系统使用。 |
|
要由后台数据完整性扫描程序(AKA 清理器)读取的用户数据流。 在目录上设置时,它仅提供继承。 此标志仅在存储空间和 ReFS 卷上受支持。 它不包括在普通目录列表中。 Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows 8 和 Windows Server 2012 之前不支持此标志。 |
|
具有扩展属性的文件或目录。 重要: 此常量仅用于内部使用。 |
|
此属性指示即使未主动访问,文件或目录也应完全存在于本地。 此属性用于分层存储管理软件。 |
|
此属性指示除非主动访问,否则不应在本地完全保留文件或目录。 此属性用于分层存储管理软件。 |
|
此属性仅在目录枚举类(FILE_DIRECTORY_INFORMATION、FILE_BOTH_DIR_INFORMATION等)中出现。 设置此属性时,表示文件或目录在本地系统上没有物理表示形式;该项为虚拟项。 打开该项的成本将比正常值更高,例如,它至少会导致从远程存储中提取其中一些项。 |
|
设置此属性时,表示文件或目录未完全存在于本地。 对于一个文件,这意味着并非所有数据都位于本地存储上(例如,它可能稀疏,某些数据仍在远程存储中)。 对于目录,这意味着某些目录内容正在从另一个位置虚拟化。 读取文件/枚举目录的成本将比普通的要高,例如,它将导致至少从远程存储中提取一些文件/目录内容。 只有内核模式调用方才能设置此位。 文件系统微型筛选器低于 180000 – 189999高度范围(FSFilter HSM 加载顺序组)不得对设置了此属性的文件发出目标缓存的读取或写入。 这可能会导致缓存污染和潜在的文件损坏。 有关详细信息,请参阅 “处理占位符”。 |
要求
| Requirement | 价值 |
|---|---|
| 支持的最低客户端 | Windows XP [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
| Header | WinNT.h (包括 Windows.h) |