共用方式為


檔案屬性常數

檔案屬性常數會定義檔案系統儲存在磁碟上的中繼資料值,並由系統使用,並透過各種檔案 I/O API 可供開發人員使用。 這些常數允許開發人員檢查和設定檔案屬性,例如唯讀、隱藏或壓縮屬性。 如需相關 API 和主題的清單,請參閱 另請參閱 區段。

Example

FILE_BASIC_INFO basicInfo;
    BOOL result;

    result = GetFileInformationByHandleEx( hFile,
                                               FileBasicInfo,
                                               &basicInfo,
                                               sizeof(basicInfo));

\\...

printf("  File Attributes: ");
    PrintFileAttributes(basicInfo.FileAttributes);

\\...
VOID
PrintFileAttributes(
    ULONG FileAttributes
    )
{
    
    if (FileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
        printf("Archive ");
    }
    if (FileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
        printf("Directory ");
    }
    if (FileAttributes & FILE_ATTRIBUTE_READONLY) {
        printf("Read-Only ");
    }
}

範例取自 GitHub 上的 Windows 傳統範例

常數/值 Description
FILE_ATTRIBUTE_READONLY
1 (0x00000001)
唯讀檔案。 應用程式可以讀取檔案,但無法寫入或刪除檔案。 目錄上不遵循此屬性。
FILE_ATTRIBUTE_HIDDEN
2 (0x00000002)
檔案或目錄已隱藏。 它不包含在普通目錄列表中。
FILE_ATTRIBUTE_SYSTEM
4 (0x00000004)
作業系統使用一部分或專門使用的檔案或目錄。
FILE_ATTRIBUTE_DIRECTORY
16 (0x00000010)
識別目錄的控制碼。
FILE_ATTRIBUTE_ARCHIVE
32 (0x00000020)
檔案或目錄,即保存檔或目錄。 應用程式通常會使用此屬性來標示要備份或移除的檔案。
FILE_ATTRIBUTE_DEVICE
64 (0x00000040)
此值保留供系統使用。
FILE_ATTRIBUTE_NORMAL
128 (0x00000080)
未設定其他屬性的檔案。 此屬性只有在單獨使用時才有效。
FILE_ATTRIBUTE_TEMPORARY
256 (0x00000100)
用於暫存儲存的檔案。 如果有足夠的快取記憶體可用,檔案系統會避免將資料寫回大量儲存體,因為一般而言,應用程式會在關閉控制碼之後刪除暫存檔案。 在此案例中,系統可以完全避免寫入資料。 否則,會在關閉控制碼之後寫入資料。
FILE_ATTRIBUTE_SPARSE_FILE
512 (0x00000200)
稀疏檔案的檔案。
FILE_ATTRIBUTE_REPARSE_POINT
1024 (0x00000400)
具有相關聯重新分析點的檔案或目錄,或符號連結的檔案。
FILE_ATTRIBUTE_COMPRESSED
2048 年 (0x00000800)
壓縮的檔案或目錄。 對於檔案,檔案中的所有資料都會被壓縮。 對於目錄,壓縮是新建立檔案和子目錄的預設值。
FILE_ATTRIBUTE_OFFLINE
4096 (0x00001000)
檔案的資料無法立即使用。 此屬性指出檔案資料已實際移至離線儲存體。 此屬性由遠端儲存體使用,遠端儲存體是階層式儲存體管理軟體。 應用程式不應該任意變更此屬性。
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x00002000)
內容索引服務不會為檔案或目錄編製索引。
FILE_ATTRIBUTE_ENCRYPTED
16384 (0x00004000)
已加密的檔案或目錄。 對於檔案,檔案中的所有資料串流都會加密。 對於目錄,加密是新建立的檔案和子目錄的預設值。
FILE_ATTRIBUTE_INTEGRITY_STREAM
32768 (0x00008000)
目錄或使用者資料串流已設定完整性 (僅支援 ReFS 磁碟區)。 它不包含在普通目錄列表中。 如果檔案已重新命名,完整性設定會保留在檔案中。 如果複製檔案,如果來源檔案或目的地目錄已設定完整性,則目的地檔案將設定完整性。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 直到 Windows Server 2012 為止,才支援此旗標。
FILE_ATTRIBUTE_VIRTUAL
65536 (0x00010000)
此值保留供系統使用。
FILE_ATTRIBUTE_NO_SCRUB_DATA
131072 (0x00020000)
使用者資料串流不會由背景資料完整性掃描器 (又名洗刷器) 讀取。 在目錄上設定時,它只會提供繼承。 此旗標僅支援儲存空間和 ReFS 磁碟區。 它不包含在普通目錄列表中。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 直到 Windows 8 和 Windows Server 2012 為止,才支援此旗標。
FILE_ATTRIBUTE_EA
262144 (0x00040000)
具有擴充屬性的檔案或目錄。

要: 此常數僅供內部使用。
FILE_ATTRIBUTE_PINNED
524288 (0x00080000)
此屬性表示使用者意圖,即即使未主動存取,檔案或目錄也應完全保留在本機。 此屬性適用於階層式儲存體管理軟體。
FILE_ATTRIBUTE_UNPINNED
1048576 (0x00100000)
此屬性指出檔案或目錄不應完全保留在本端,除非主動存取。 此屬性適用於階層式儲存體管理軟體。
FILE_ATTRIBUTE_RECALL_ON_OPEN
262144 (0x00040000)
此屬性只會出現在目錄列舉類別 (FILE_DIRECTORY_INFORMATION、FILE_BOTH_DIR_INFORMATION 等) 中。 設定此屬性時,表示檔案或目錄在本端系統上沒有實體表示法;該項目是虛擬的。 打開該物品將比平時更昂貴,例如,它會導致至少部分物品從遠程商店獲取。
FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
4194304 (0x00400000)
設定此屬性時,表示檔案或目錄未完全存在於本端。 對於一個文件,這意味著並非所有數據都在本地存儲上(例如,它可能是稀疏的,某些數據仍在遠程存儲中)。 對於目錄,這表示某些目錄內容正在從另一個位置虛擬化。 讀取檔案/列舉目錄會比平常更昂貴,例如,它會導致至少從遠端儲存區取得一些檔案/目錄內容。 只有核心模式呼叫端可以設定此位。

低於 180000 – 189999 高度範圍 (FSFilter HSM 載入順序群組) 的檔案系統迷你篩選器不得對已設定此屬性的檔案發出目標快取讀取或寫入。 這可能會導致快取污染和潛在的檔案損壞。 如需詳細資訊,請參閱 處理預留位置

需求

Requirement 價值觀
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
Header WinNT.h (包括 Windows.h)

另請參閱

壓縮屬性

建立和開啟檔案

建立檔案

CreateFileTransacted

GetFile屬性

GetFileAttributesEx

GetFileAttributesTransacted

GetFileInformationByHandle

GetFileInformationByHandleEx

SetFile屬性

SetFileAttributes已交易

SetFileInformationByHandle

Windows 中的檔案總管