次の方法で共有


GetCompressedFileSizeA 関数 (fileapi.h)

指定したファイルを格納するために使用されるディスク ストレージの実際のバイト数を取得します。 ファイルが圧縮をサポートするボリューム上にあり、ファイルが圧縮されている場合、取得される値は指定されたファイルの圧縮サイズです。 ファイルがスパース ファイルをサポートするボリューム上にあり、ファイルがスパース ファイルである場合、取得される値は指定されたファイルのスパース サイズです。

この操作をトランザクション操作として実行するには、GetCompressedFileSizeTransacted 関数を使用します。

構文

DWORD GetCompressedFileSizeA(
  [in]            LPCSTR  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以外) かどうかを判断する必要があります。

備考

アプリケーションは、GetVolumeInformation呼び出し、その関数の lpFileSystemFlags パラメーターによって指される DWORD 値の FS_VOL_IS_COMPRESSED フラグの状態を確認することによって、ボリュームが圧縮されているかどうかを判断できます。

圧縮またはスパース ファイルをサポートするボリュームにファイルが配置されていない場合、またはファイルが圧縮されていない場合、またはスパース ファイルでない場合、取得される値は実際のファイル サイズであり、GetFileSize呼び出しによって返される値と同じです。

シンボリック リンクの動作 : パスがシンボリック リンクを指している場合、関数はターゲットのファイル サイズを返します。

Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。

テクノロジー サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 透過的フェールオーバー (TFO) はい
SMB 3.0 とスケールアウト ファイル共有 (SO) はい
クラスター共有ボリューム ファイル システム (CsvFS) はい
回復性のあるファイル システム (ReFS) はい
 

手記

fileapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetCompressedFileSize を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー fileapi.h (Windows.h、WinBase.h、Fileapi.h、Windows.h、WinBase.h、Fileapi.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

ファイルの圧縮と展開の

ファイル管理機能の

GetCompressedFileSizeTransacted の

GetFileSize を する

GetVolumeInformation の

シンボリック リンク の