Delphi WinAPI GetFileAttributes - 检索指定文件或目录的文件系统属性。
Delphi WinAPI GetFileAttributes - 检索指定文件或目录的文件系统属性。
GetFileAttributes 检索指定文件或目录的文件系统属性。要获取更多属性信息,请使用GetFileAttributesEx函数。要以事务处理操作的形式执行此操作,请使用GetFileAttributesTransact函数。
原型:
DWORD GetFileAttributesA(
[in] LPCSTR lpFileName
);
参数:
- [in] lpFileName //文件或目录的名称。
- 在该函数的ANSI版本中,名称仅限于MAX_路径字符。要将此限制扩展到32767个宽字符,请调用Unicode版本的函数(GetFileAttributesW),并在路径前加上“\\?\”。
- 提示:从Windows 10版本1607开始,对于此函数的unicode版本(GetFileAttributesW),您可以选择加入以删除最大路径字符限制,而无需在“\\?\”前加前缀。有关详细信息,请参阅命名文件、路径和名称空间的“最大路径限制”部分。
返回值:如果函数成功,返回值将包含指定文件或目录的属性。有关属性值及其描述的列表,请参见文件属性常量。如果函数失败,则返回值无效。
附.文件属性常量( 滔Roy 整理,解释权归作者)
- 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)) //后台数据完整性扫描器(又名洗涤器)无法读取的用户数据流。在目录上设置时,它只提供继承。此标志仅在存储空间和参考卷上受支持。它不包括在普通目录列表中。
- 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_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)) //此值保留供系统使用。
创建时间:2022.02.16 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!