文件特性常量

文件属性是文件系统存储在磁盘上的元数据值,由系统使用,可通过各种文件 I/O API 向开发人员提供。 有关相关 API 和主题的列表,请参阅“另请参阅”部分。

示例



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经典示例获取的示例

常量/值 说明
FILE_ATTRIBUTE_ARCHIVE
32 (0x20)
是存档文件或目录的文件或目录。 应用程序通常使用此属性标记文件以供备份或删除。
FILE_ATTRIBUTE_COMPRESSED
2048 (0x800)
压缩的文件或目录。 对于文件,文件中的所有数据都会压缩。 对于目录,压缩是新创建的文件和子目录的默认值。
FILE_ATTRIBUTE_DEVICE
64 (0x40)
此值保留供系统使用。
FILE_ATTRIBUTE_DIRECTORY
16 (0x10)
标识目录的句柄。
FILE_ATTRIBUTE_ENCRYPTED
16384 (0x4000)
加密的文件或目录。 对于文件,文件中的所有数据流均已加密。 对于目录,加密是新创建的文件和子目录的默认值。
FILE_ATTRIBUTE_HIDDEN
2 (0x2)
文件或目录已隐藏。 它不包括在普通目录列表中。
FILE_ATTRIBUTE_INTEGRITY_STREAM
32768 (0x8000)
目录或用户数据流配置为仅在 ReFS 卷) 支持完整性 (。 它不包括在普通目录列表中。 如果文件已重命名,则完整性设置将保留。 如果复制文件,则目标文件将设置完整性集(如果源文件或目标目录具有完整性设置)。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:此标志在Windows Server 2012之前不受支持。
FILE_ATTRIBUTE_NORMAL
128 (0x80)
未设置其他属性的文件。 此属性仅在单独使用时才有效。
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x2000)
文件或目录不会由内容索引服务编制索引。
FILE_ATTRIBUTE_NO_SCRUB_DATA
131072 (0x20000)
后台数据完整性扫描程序 (AKA 清理器) 读取用户数据流。 在目录上设置时,它仅提供继承。 此标志仅在 存储空间 和 ReFS 卷上受支持。 它不包括在普通目录列表中。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:此标志在Windows 8和Windows Server 2012之前不受支持。
FILE_ATTRIBUTE_OFFLINE
4096 (0x1000)
文件的数据不能立即可用。 此属性指示文件数据在物理上移动到脱机存储。 远程存储使用此属性,它是分层存储管理软件。 应用程序不应随意更改此属性。
FILE_ATTRIBUTE_READONLY
1 (0x1)
只读的文件。 应用程序可以读取该文件,但无法写入该文件或删除该文件。 目录上不遵循此属性。 有关详细信息,请参阅无法在 Windows Server 2003、Windows XP、Windows Vista 或 Windows 7 中查看或更改文件夹的只读属性或系统属性
FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
4194304 (0x400000)
设置此属性时,这意味着文件或目录在本地未完全存在。 对于一个文件,这意味着并非所有数据都位于本地存储 (,例如,它可能稀疏,某些数据仍位于远程存储) 中。 对于目录,这意味着某些目录内容正在从另一个位置虚拟化。 读取文件/枚举目录的成本将比普通的要高,例如,它至少会导致从远程存储中提取某些文件/目录内容。 只有内核模式调用方才能设置此位。
FILE_ATTRIBUTE_RECALL_ON_OPEN
262144 (0x40000)
此属性仅在目录枚举类 (FILE_DIRECTORY_INFORMATION、FILE_BOTH_DIR_INFORMATION等) 中显示。 设置此属性时,表示文件或目录在本地系统上没有物理表示形式;该项为虚拟项。 打开项目的成本将比正常要高,例如,它至少会导致从远程存储提取其中一些内容。
FILE_ATTRIBUTE_REPARSE_POINT
1024 (0x400)
具有关联的重新分析点的文件或目录,或作为符号链接的文件。
FILE_ATTRIBUTE_SPARSE_FILE
512 (0x200)
一个稀疏文件的文件。
FILE_ATTRIBUTE_SYSTEM
4 (0x4)
操作系统使用的一部分或独占使用的文件或目录。
FILE_ATTRIBUTE_TEMPORARY
256 (0x100)
用于临时存储的文件。 如果有足够的缓存内存可用,文件系统会避免将数据写回大容量存储,因为通常,应用程序在关闭句柄后会删除临时文件。 在这种情况下,系统可以完全避免写入数据。 否则,在关闭句柄后写入数据。
FILE_ATTRIBUTE_VIRTUAL
65536 (0x10000)
此值保留供系统使用。

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
WinNT.h (包括 Windows.h)

另请参阅

压缩属性

创建和打开文件

CreateFile

CreateFileTransacted

GetFileAttributes

GetFileAttributesEx

GetFileAttributesTransacted

GetFileInformationByHandle

GetFileInformationByHandleEx

SetFileAttributes

SetFileAttributesTransacted

SetFileInformationByHandle