共用方式為


疏鬆檔案作業

若要判斷檔案系統是否支援疏鬆檔案,請呼叫GetVolumeInformation 函式,並檢查透過lpFileSystemFlags參數傳回的FILE_SUPPORTS_SPARSE_FILES位旗標。

大部分的應用程式都不知道疏鬆檔案,也不會建立疏鬆檔案。 應用程式讀取疏鬆檔案對應用程式而言是透明的事實。 感知疏鬆檔案的應用程式應該判斷其資料集是否適合保留在疏鬆檔案中。 完成該判斷之後,應用程式必須使用 FSCTL_SET_SPARSE 控制項程式碼,明確地將檔案宣告為疏鬆。

應用程式將檔案設定為疏鬆之後,應用程式可以使用 FSCTL_SET_ZERO_DATA 控制項程式碼將檔案的區域設定為零。 此外,應用程式可以使用 FSCTL_QUERY_ALLOCATED_RANGES 控制程式代碼來加速搜尋疏鬆檔案中的非零資料。

當您使用 FSCTL_SET_ZERO_DATA) 由零以外的函式或作業執行寫入作業 (時,零會針對寫入的整個長度寫入磁片。 若要將檔案的範圍零並維護疏鬆性,請使用 FSCTL_SET_ZERO_DATA

疏鬆感知應用程式也可以將現有的檔案設定為疏鬆。 如果應用程式將現有的檔案設定為疏鬆,則應該掃描檔案中是否有包含零的區域,並使用 FSCTL_SET_ZERO_DATA 來重設這些區域,因而可能解除配置某些實體磁片儲存體。 升級至疏鬆檔案感知的應用程式應該執行此轉換。

當您從疏鬆檔案的零除部分執行讀取作業時,作業系統可能不會從硬碟讀取。 相反地,系統會辨識要讀取的檔案部分包含零,而且它會傳回包含零的緩衝區,而不會實際從磁片讀取。

如同任何其他檔案,系統可以寫入或讀取疏鬆檔案中任何位置的資料。 寫入檔案先前零部分的非零資料可能會導致磁碟空間配置。 只有 FSCTL_SET_ZERO_DATA) 才會 透過非零資料寫入零 (可能會導致磁碟空間解除配置。

注意

應用程式可以藉由撰寫具有 FSCTL_SET_ZERO_DATA的零來維護疏鬆性。

 

處理 NTFS 檔案系統上壓縮檔案的重組工具會正確地處理 NTFS 檔案系統磁片區上的疏鬆檔案。 使用可用空間之前,大型和高度分散的疏鬆檔案可能會超過磁片範圍的 NTFS 限制。