Condividi tramite


Funzione LZOpenFileA (lzexpand.h)

Crea, apre, riapre o elimina il file specificato.

Sintassi

INT LZOpenFileA(
  [in]  LPSTR      lpFileName,
  [out] LPOFSTRUCT lpReOpenBuf,
  [in]  WORD       wStyle
);

Parametri

[in] lpFileName

Nome del file.

[out] lpReOpenBuf

Puntatore alla struttura OFSTRUCT che deve ricevere informazioni sul file quando il file viene aperto per la prima volta. La struttura può essere usata nelle chiamate successive alla funzione LZOpenFile per visualizzare il file aperto.

Il membro szPathName di questa struttura contiene caratteri del set di caratteri OEM (Original Equipment Manufacturer).

[in] wStyle

Azione da intraprendere. Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
OF_CANCEL
0x0800
Ignorato. Fornito solo per compatibilità con Windows a 16 bit. Utilizzare lo stile OF_PROMPT per visualizzare una finestra di dialogo contenente un pulsante annulla .
OF_CREATE
0x1000
Indirizza LZOpenFile per creare un nuovo file. Se il file esiste già, viene troncato a lunghezza zero.
OF_DELETE
0x0200
Elimina il file.
OF_EXIST
0x4000
Apre il file e quindi lo chiude per verificare l'esistenza di un file.
OF_PARSE
0x0100
Riempie la struttura OFSTRUCT, ma non esegue altre azioni.
OF_PROMPT
0x2000
Visualizza una finestra di dialogo se il file richiesto non esiste. La finestra di dialogo informa l'utente che il sistema non riesce a trovare il file e contiene di ripetizione dei tentativi e pulsanti Annulla. Facendo clic sul pulsante Annulla LZOpenFile per restituire un messaggio di errore non trovato.
OF_READ
0x0000
Apre il file solo per la lettura.
OF_READWRITE
0x0002
Apre il file per la lettura e la scrittura.
OF_REOPEN
0x8000
Apre il file usando le informazioni nel buffer di riapertura.
OF_SHARE_DENY_NONE
0x0040
Apre il file senza negare l'accesso in lettura o scrittura ad altri processi al file. LZOpenFile ha esito negativo se il file è stato aperto in modalità di compatibilità da qualsiasi altro processo.
OF_SHARE_DENY_READ
0x0030
Apre il file e nega l'accesso in lettura ad altri processi al file. LZOpenFile ha esito negativo se il file è stato aperto in modalità di compatibilità o è stato aperto per l'accesso in lettura da qualsiasi altro processo.
OF_SHARE_DENY_WRITE
0x0020
Apre il file e nega l'accesso in scrittura ad altri processi al file. LZOpenFile ha esito negativo se il file è stato aperto in modalità di compatibilità o è stato aperto per l'accesso in scrittura da qualsiasi altro processo.
OF_SHARE_EXCLUSIVE
0x0010
Apre il file in modalità esclusiva, negando ad altri processi l'accesso in lettura e scrittura al file. LZOpenFile ha esito negativo se il file è stato aperto in qualsiasi altra modalità per l'accesso in lettura o scrittura, anche dal processo corrente.
OF_WRITE
0x0001
Apre il file solo per la scrittura.

Valore restituito

Se la funzione ha esito positivo e il valore specificato dal parametro wStyle non è OF_READ, il valore restituito è un handle che identifica il file. Se il file viene compresso e aperto con wStyle impostato su OF_READ, il valore restituito è un handle di file speciale.

Se la funzione ha esito negativo, il valore restituito è un codice LZERROR_*. Questi codici hanno valori minori di zero. Non sono presenti informazioni di errore estese per questa funzione; non chiamare GetLastError.

NotaLZOpenFile non chiama né SetLastErrorSetLastErrorEx; di conseguenza, l'errore non influisce sul codice di ultimo errore di un thread.
 
Di seguito è riportato l'elenco dei codici di errore che LZOpenFile possono restituire in caso di errore.
Codice/valore restituito Descrizione
LZERROR_BADINHANDLE
-1
L'handle che identifica il file di origine non è valido. Impossibile leggere il file.
LZERROR_GLOBALLOC
-5
Il numero massimo di file compressi aperti è stato superato o non è possibile allocare memoria locale.

Osservazioni

Se il parametro wStyle è il flag di OF_READ (o OF_READ e uno dei flag OF_SHARE_*) e il file viene compresso, LZOpenFile chiama la funzione LZInit , che esegue l'inizializzazione necessaria per le operazioni di decompressione.

L'handle restituito da questa funzione è compatibile solo con le funzioni in Lz32.dll; non deve essere usato per altre operazioni di file.

Se LZOpenFile non è in grado di aprire il file specificato da lpFileName, in alcune versioni di Windows tenta di aprire un file con quasi lo stesso nome file, ad eccezione dell'ultimo carattere viene sostituito con un carattere di sottolineatura (""). Pertanto, se un tentativo di aprire "MyProgram.exe" ha esito negativo, LZOpenFile tenta di aprire "MyProgram.ex". I pacchetti di installazione spesso sostituiscono il carattere di sottolineatura per l'ultima lettera di un'estensione di file per indicare che il file è compresso. Ad esempio, "MyProgram.exe" compresso potrebbe essere denominato "MyProgram.ex_". Per determinare il nome del file aperto (se presente), esaminare il membro szPathName della struttura OFSTRUCT nel parametro lpReOpenBuf.

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

Tecnologia Sostenuto
Protocollo SMB (Server Message Block) 3.0
SMB 3.0 Transparent Failover (TFO)
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO)
Cluster Shared Volume File System (CsvFS)
Resilient File System (ReFS)
 

CsvFs eseguirà il reindirizzamento di I/O per i file compressi.

Nota

L'intestazione lzexpand.h definisce LZOpenFile 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 lzexpand.h (include Windows.h)
libreria Lz32.lib
dll Lz32.dll

Vedere anche

compressione e decompressione dei file

funzioni di gestione file

LZClose

LZInit

LZRead

OFSTRUCT