- 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屬性
2.SetFileAttributes 設置文件屬性函數
設置文件屬性: SetFileAttributes(文件名, 屬性值)
SetFileAttributes(文件名, FILE_ATTRIBUTE_READONLY); // 設定為只讀
SetFileAttributes(文件名, FILE_ATTRIBUTE_HIDDEN ); //設定為隱藏
SetFileAttributes(文件名, FILE_ATTRIBUTE_SYSTEM); //設定為系統
SetFileAttributes(文件名, FILE_ATTRIBUTE_ARCHIVE); //設定為保存
SetFileAttributes(文件名, FILE_ATTRIBUTE_NORMAL); //設定為一般 (取消前四種屬性)
設定二種以上的屬性:
- 設定為只讀 + 隱藏
SetFileAttributes(文件名, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN);
- 設定為只讀 + 隱藏 + 系統 + 保存
SetFileAttributes(文件名, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN _
| FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE);
- 取消所有設定
SetFileAttributes(文件名, FILE_ATTRIBUTE_NORMAL);
-成功返回1-65536 ,錯誤返回0;
-#include <windows.h> 頭文件;