C/C++ 文件屬性設置(隱藏、只讀、加密等)


在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

虛擬

 

橙色標記的屬性為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> 頭文件;

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM