GetCompressedFileSize |
Declare Function Api_GetCompressedFileSize& Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName$, lpFileSizeHigh&) |
Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long |
|
指定されたファイルがディスク上で実際に占有しているサイズをバイト単位で取得する。ファイルを格納しているボリュームが圧縮機能をサポートしていて、ファイルが圧縮されている場合、圧縮済みのサイズを取得する。ファイルを格納しているボリュームがスパースファイル(疎なファイル、未使用の領域が多い、または同じ値が長く続くファイル)の自動圧縮をサポートしていて、指定されたファイルがスパースファイルである場合、スパースサイズを取得する。 |
|
パラメータ
それらのデバイスのファイルサイズには意味がないからである。
この関数の戻り値は、下位(low-order)DWORD である。 また、lpFileSizeHigh パラメータが NULL ではない場合、このパラメータが指す変数に、ファイルサイズの上位 DWORD が格納される。
圧縮ファイルの場合は圧縮ファイルサイズ、非圧縮ファイルの場合は実際のファイルサイズである。
拡張エラー情報を取得するには、GetLastError 関数を使う。 GetCompressedFileSize 関数が成功したか(GetLastError の戻り値は NO_ERROR)失敗したか(NO_ERROR 以外の値)
判断しなければならない。
lpFileSystemFlags パラメータが指す DWORD 値内の FS_VOL_IS_COMPRESSED
フラグのステータスをチェックする。 ァイルではない場合、GetFileSize 関数を呼び出した場合と同様、通常のファイルサイズが返る。 |