支援個別檔案與目錄壓縮的磁碟區上的每個檔案與目錄都有 壓縮狀態。
雖然檔案或目錄的壓縮屬性只會指出檔案或目錄是否經過壓縮,壓縮狀態也會指定任何壓縮數據的格式。
使用 FSCTL_GET_COMPRESSION 控件程式代碼來判斷檔案或目錄的壓縮狀態。
壓縮狀態會編碼為16位值。 COMPRESSION_FORMAT_NONE的壓縮狀態值表示檔案未壓縮。 COMPRESSION_FORMAT_DEFAULT值表示使用默認壓縮格式壓縮檔案。 任何其他值表示檔案已壓縮,使用壓縮狀態值所指定的壓縮格式。
使用 FSCTL_SET_COMPRESSION 控件程式代碼來設定檔案或目錄的壓縮狀態。 此作業也會設定檔案或目錄的壓縮屬性。
使用壓縮狀態值編碼的壓縮格式,將檔案的壓縮狀態設定為非零值會壓縮檔案。 將檔案的壓縮狀態設定為零會解壓縮檔案。 這些是同步作業。 當您設定檔案的壓縮狀態時,會立即壓縮或解壓縮。
設定目錄的壓縮狀態不會造成任何立即壓縮或解壓縮。 相反地,設定目錄的壓縮狀態會設定默認壓縮狀態,該狀態會提供給所有新建立的檔案和子目錄。