GetFileAttributes详解

来源:互联网 发布:公司数据安全管理 编辑:程序博客网 时间:2024/06/08 08:11

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 属性。