在MSDN中,文件共有15种属性,根据磁盘的分区格式不同,文件的属性也会不同
1.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 | 虚拟 |
其中"只读",“隐藏”,“系统”,"存档"为文件的四种基本属性
compressed,content_indexed,encrypted只存在与NTFS分区种
文件去掉全部属性后(四种基本属性),将自动标记为normal
同时具有system和hidden属性的文件会在系统种彻底隐形,这也是病毒常用的伎俩
compressed和encrupted不能共存
默认情况下文件都有content_indesed属性
2.SetFileAttributes 设置文件属性函数
设置文件属性: SetFileAttributes(文件名,属性值)
设定二种以上属性:
SetFileAttributes(文件名,FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_HIDDEN);
//设定为只读+隐藏
SetFileAttributes(文件名,FILE_ATTRIBUTE_NORMAL);
//取消所有设定
成功返回1-65536,错误返回0;
#include<windows.h>