次の方法で共有


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 であり、 lpFileSizeHighNULL 以外の場合、関数は、その実際の値の上位 DWORD を、そのパラメーターが指す DWORD に格納します。 これは圧縮ファイルの圧縮ファイル サイズであり、圧縮されていないファイルの実際のファイル サイズです。

関数が失敗し、 lpFileSizeHighNULL の場合、戻り値は INVALID_FILE_SIZE。 詳細なエラー情報を得るには、GetLastError を呼び出します。

戻り値が INVALID_FILE_SIZElpFileSizeHighNULL 以外の場合、アプリケーションは 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

関連項目

ファイルの圧縮と圧縮解除

ファイル管理機能

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

シンボリック リンク