GetCompressedFileSizeW 関数 (fileapi.h)
指定したファイルの格納に使用されるディスク ストレージの実際のバイト数を取得します。 ファイルが圧縮をサポートするボリューム上にあり、ファイルが圧縮されている場合、取得される値は指定されたファイルの圧縮サイズです。 スパース ファイルをサポートするボリューム上にファイルがあり、そのファイルがスパース ファイルである場合、取得される値は指定されたファイルのスパース サイズです。
この操作をトランザクション操作として実行するには、 GetCompressedFileSizeTransacted 関数を使用します。
構文
DWORD GetCompressedFileSizeW(
[in] LPCWSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh
);
パラメーター
[in] lpFileName
ファイルの名前です。
パイプや通信デバイスなど、見えないデバイス上のファイルの名前は指定しないでください。ファイル サイズには意味がないためです。
このパラメーターには、パスを含めることができます。
既定では、名前はMAX_PATH文字に制限されています。 この制限を 32,767 文字のワイド文字に拡張するには、パスの先頭に "\\?\" を付加します。 詳細については、「ファイル、パス、および名前空間の名前付け」を参照してください。
ヒント
Windows 10 バージョン 1607 以降では、"\\?\" を前もって指定しなくても、MAX_PATHの制限を削除するようにオプトインできます。 詳細については、「 名前付けファイル、パス、および名前空間 」の「パスの最大長制限」セクションを参照してください。
[out, optional] lpFileSizeHigh
圧縮ファイル サイズの上位 DWORD 。 関数の戻り値は、圧縮ファイル サイズの下位 DWORD です。
圧縮ファイル サイズの高次 DWORD が不要な場合、このパラメーターは NULL にすることができます。 サイズが 4 ギガバイト未満のファイルでは、高次 DWORD は必要ありません。
戻り値
関数が成功した場合、戻り値は、指定したファイルの格納に使用されるディスク ストレージの実際のバイト数の下位 DWORD であり、 lpFileSizeHigh が NULL 以外の場合、関数は、その実際の値の上位 DWORD を、そのパラメーターが指す DWORD に格納します。 これは圧縮ファイルの圧縮ファイル サイズであり、圧縮されていないファイルの実際のファイル サイズです。
関数が失敗し、 lpFileSizeHigh が NULL の場合、戻り値は INVALID_FILE_SIZE。 詳細なエラー情報を得るには、GetLastError を呼び出します。
戻り値が INVALID_FILE_SIZE で lpFileSizeHigh が NULL 以外の場合、アプリケーションは GetLastError を呼び出して、関数が成功した (値が NO_ERROR) か失敗したか (値が NO_ERROR以外) かどうかを判断する必要があります。
Remarks
アプリケーションは、GetVolumeInformation を呼び出し、その関数の lpFileSystemFlags パラメーターが指す DWORD 値のFS_VOL_IS_COMPRESSED フラグの状態を確認することで、ボリュームが圧縮されているかどうかを判断できます。
ファイルが圧縮またはスパース ファイルをサポートするボリューム上にない場合、またはファイルが圧縮されていない場合やスパース ファイルの場合、取得される値は、 GetFileSize の呼び出しによって返される値と同じ実際のファイル サイズになります。
シンボリック リンクの動作 — パスがシンボリック リンクを指している場合、関数はターゲットのファイル サイズを返します。
Windows 8とWindows Server 2012では、この関数は次のテクノロジでサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有を含む SMB 3.0 (SO) | はい |
クラスター共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
注意
fileapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetCompressedFileSize を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | fileapi.h (Windows.h、WinBase.h、Fileapi.h、Windows.h、WinBase.h、Fileapi.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示