GetFileAttributes Function
为一个指定的文件或目录返回文件系统的属性。可以使用GetFileAttributesEx 函数获得更多的属性信息。如果要实现交互式操作,可以使用GetFileAttributesTransacted 函数。 DWORD WINAPI GetFileAttributes( __in LPCTSTR lpFileName ); 参数 lpFileName [in] 文件或目录的名字,对于ANSI版本,名字不能大于MAX_PATH。 返回值 如果函数成功,返回值包含文件或目录的属性。如果函数失败,返回值是INVALID_FILE_ATTRIBUTES。 备注 当该函数作用在一个挂载文件夹时,它返回目录的文件系统的属性,而不是根目录的信息。为了获得与文件属性关联的卷信息,可以调用GetVolumeNameForVolumeMountPoint 函数。 要求 Minimum supported client Windows 2000 Professional Minimum supported server Windows 2000 Server Header WinBase.h (include Windows.h) Library Kernel32.lib DLL Kernel32.dll Unicode and ANSI names GetFileAttributesW (Unicode) and GetFileAttributesA (ANSI)在MSDN 中,文件总共有15 种属性,根据磁盘的分区格式不同,文件的属性也会不同。
现在针对 GetFileAttributes 函数 的返回值做以下整理
返回字段 | 返回值 | 属性类型 |
FILE_ATTRIBUTE_READONLY | 1 | 只读 |
FILE_ATTRIBUTE_HIDDEN | 2 | 隐藏 |
FILE_ATTRIBUTE_SYSTEM | 4 | 系统 |
FILE_ATTRIBUTE_DIRECTORY | 16 | 目录 |
FILE_ATTRIBUTE_ARCHIVE | 32 | 存档 |
FILE_ATTRIBUTE_DEVICE | 64 | 保留 |
FILE_ATTRIBUTE_NORMAL | 128 | 正常 |
FILE_ATTRIBUTE_TEMPORARY | 256 | 临时 |
FILE_ATTRIBUTE_SPARSE_FILE | 512 | 稀疏文件 |
FILE_ATTRIBUTE_REPARSE_POINT | 1024 | 超链接或快捷方式 |
FILE_ATTRIBUTE_COMPRESSED | 2048 | 压缩 |
FILE_ATTRIBUTE_OFFLINE | 4096 | 脱机 |
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | 8192 | 索引 |
FILE_ATTRIBUTE_ENCRYPTED | 16384 | 加密 |
FILE_ATTRIBUTE_VIRTUAL | 65536 | 虚拟 |
橙色标记的属性为 Windows 系统中文件的公有属性,其中 “ 只读 ” 、 “ 隐藏 ” 、 “ 系统 ” 、 “ 存档 ” 为文件的四种基本属性。 compressed , content_indexed , encrypted 只存在于 NTFS 分区中。
文件去掉全部属性后(四种基本属性),将自动标记为 normal 。同时具有 system 和 hidden 属性的文件会在系统中彻底隐形,这也是病毒常用的伎俩。
commpressed 和 encrypted 不能共存。默认情况下文件都有 content_indexed 属性。