圧縮状態
個々のファイルとディレクトリの圧縮をサポートするボリューム上の各ファイルとディレクトリには、圧縮状態。
ファイルまたはディレクトリの圧縮属性は、ファイルまたはディレクトリが圧縮されているかどうかだけを示しますが、圧縮状態では圧縮データの形式も指定されます。
FSCTL_GET_COMPRESSION コントロール コードを使用して、ファイルまたはディレクトリの圧縮状態を判断します。
圧縮状態は 16 ビット値としてエンコードされます。 COMPRESSION_FORMAT_NONEの圧縮状態の値は、ファイルが圧縮されていないことを示します。 COMPRESSION_FORMAT_DEFAULTの値は、既定の圧縮形式を使用してファイルが圧縮されていることを示します。 その他の値は、圧縮状態の値で指定された圧縮形式を使用して、ファイルが圧縮されていることを示します。
FSCTL_SET_COMPRESSION コントロール コードを使用して、ファイルまたはディレクトリの圧縮状態を設定します。 この操作により、ファイルまたはディレクトリの圧縮属性も設定されます。
ファイルの圧縮状態を 0 以外の値に設定すると、圧縮状態の値でエンコードされた圧縮形式を使用してファイルが圧縮されます。 ファイルの圧縮状態を 0 に設定すると、ファイルが展開されます。 これらは同期操作です。 ファイルは、圧縮状態を設定するとすぐに圧縮または圧縮解除されます。
ディレクトリの圧縮状態を設定しても、すぐに圧縮または展開されることはありません。 代わりに、ディレクトリの圧縮状態を設定すると、新しく作成されたすべてのファイルとサブディレクトリに与えられる既定の圧縮状態が設定されます。