Condividi tramite


Funzione GetCompressedFileSizeA (fileapi.h)

Recupera il numero effettivo di byte di archiviazione su disco usato per archiviare un file specificato. Se il file si trova in un volume che supporta la compressione e il file viene compresso, il valore ottenuto è la dimensione compressa del file specificato. Se il file si trova in un volume che supporta file sparse e il file è un file sparse, il valore ottenuto è la dimensione sparse del file specificato.

Per eseguire questa operazione come operazione transazionata, usare la funzione GetCompressedFileSizeTransacted .

Sintassi

DWORD GetCompressedFileSizeA(
  [in]            LPCSTR  lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh
);

Parametri

[in] lpFileName

Nome del file.

Non specificare il nome di un file in un dispositivo non visualizzante, ad esempio una pipe o un dispositivo di comunicazione, perché le dimensioni del file non hanno alcun significato.

Questo parametro può includere il percorso.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri. Per estendere questo limite a 32.767 caratteri wide, prependo "\\?\" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.

Suggerimento

A partire da Windows 10, versione 1607, è possibile scegliere di rimuovere la limitazione MAX_PATH senza pre sospeso "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima lunghezza percorso" di nomi, nomi, percorsi e spazi dei nomi .

[out, optional] lpFileSizeHigh

DWORD ad ordine elevato delle dimensioni del file compresso. Il valore restituito della funzione è il DWORD a basso ordine delle dimensioni del file compresso.

Questo parametro può essere NULL se la DWORD con ordine elevato delle dimensioni del file compresso non è necessaria. I file di dimensioni inferiori a 4 gigabyte non richiedono la DWORD di ordine elevato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è il DWORD a basso ordine del numero effettivo di byte di archiviazione su disco usato per archiviare il file specificato e se lpFileSizeHigh non è NULL, la funzione inserisce l'ordine elevato DWORD di tale valore effettivo nel DWORD puntato a tale parametro. Si tratta delle dimensioni dei file compressi per i file compressi, le dimensioni effettive del file per i file non compressi.

Se la funzione ha esito negativo e lpFileSizeHigh è NULL, il valore restituito è INVALID_FILE_SIZE. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Se il valore restituito è INVALID_FILE_SIZE e lpFileSizeHigh è diverso da NULL, un'applicazione deve chiamare GetLastError per determinare se la funzione ha avuto esito positivo (valore è NO_ERROR) o non riuscita (valore diverso da NO_ERROR).

Commenti

Un'applicazione può determinare se un volume viene compresso chiamando GetVolumeInformation, quindi controllando lo stato del flag FS_VOL_IS_COMPRESSED nel valore DWORD a cui punta il parametro lpFileSystemFlags della funzione.

Se il file non si trova in un volume che supporta la compressione o i file sparse o se il file non è compresso o un file sparse, il valore ottenuto è la dimensione effettiva del file, uguale al valore restituito da una chiamata a GetFileSize.

Comportamento di collegamento simbolico: se il percorso punta a un collegamento simbolico, la funzione restituisce le dimensioni del file della destinazione.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO)
File system del volume condiviso del cluster (CsvFS)
File system resiliente (ReFS)
 

Nota

L'intestazione fileapi.h definisce GetCompressedFileSize come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione fileapi.h (include Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Compressione e decompressione dei file

Funzioni di gestione file

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

Collegamenti simbolici