檔案屬性常數

檔案屬性是檔案系統儲存在磁片上的中繼資料值,由系統使用,並可透過各種檔案 I/O API 提供給開發人員使用。 如需相關 API 和主題的清單,請參閱 另請參閱一 節。

範例

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 傳統範例取得的範例

常數/值 描述
FILE_ATTRIBUTE_READONLY
1 (0x00000001)
唯讀的檔案。 應用程式可以讀取檔案,但無法寫入或刪除檔案。 目錄上不接受這個屬性。 如需詳細資訊,請參閱 您無法在 Windows Server 2003、Windows XP、Windows Vista 或 Windows 7 中檢視或變更資料夾的唯讀或系統屬性
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 載入順序群組) 不得發出已設定此屬性之檔案的目標快取讀取或寫入。 這可能會導致快取損壞和潛在的檔案損毀。 如需詳細資訊,請參閱 處理預留位置

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
標頭 WinNT.h (包含 Windows.h)

另請參閱

Compression 屬性

建立和開啟檔案

CreateFile

CreateFileTransacted

GetFileAttributes

GetFileAttributesEx

GetFileAttributesTransacted

GetFileInformationByHandle

GetFileInformationByHandleEx

SetFileAttributes

SetFileAttributesTransacted

SetFileInformationByHandle