Funzione GetCompressedFileSizeW (fileapi.h)
Recupera il numero effettivo di byte di spazio 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 di tipo sparse e il file è un file sparse, il valore ottenuto è la dimensione di tipo sparse del file specificato.
Per eseguire questa operazione come operazione transazionata, usare la funzione GetCompressedFileSizeTransacted.
Sintassi
DWORD GetCompressedFileSizeW(
[in] LPCWSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh
);
Parametri
[in] lpFileName
Nome del file.
Non specificare il nome di un file in un dispositivo che non visualizza, 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, anteporre "\\?\" al percorso. Per altre informazioni, vedere denominazione di file, percorsi e spazi dei nomi.
Mancia
A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente alla rimozione della limitazione MAX_PATH senza anteporre "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di nomi, percorsi e spazi dei nomi.
[out, optional] lpFileSizeHigh
L' DWORD
Questo parametro può essere
Valore restituito
Se la funzione ha esito positivo, il valore restituito è l'
Se la funzione ha esito negativo e lpFileSizeHigh è NULL, il valore restituito è INVALID_FILE_SIZE. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Se il valore restituito è INVALID_FILE_SIZE e lpFileSizeHigh non ènull, un'applicazione deve chiamare GetLastError per determinare se la funzione ha esito positivo (valore è NO_ERROR) o non riuscita (il valore è diverso da NO_ERROR).
Osservazioni
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 valore lpFileSystemFlags parametro.
Se il file non si trova in un volume che supporta file di compressione o sparse o se il file non è compresso o di tipo sparse, il valore ottenuto è la dimensione effettiva del file, uguale al valore restituito da una chiamata a GetFileSize.
Comportamento del 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 | Sostenuto |
---|---|
Protocollo SMB (Server Message Block) 3.0 | Sì |
SMB 3.0 Transparent Failover (TFO) | Sì |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | Sì |
Cluster Shared Volume File System (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
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