Compartilhar via


Função LZOpenFileW (lzexpand.h)

Cria, abre, reabre ou exclui o arquivo especificado.

Sintaxe

INT LZOpenFileW(
  [in]  LPWSTR     lpFileName,
  [out] LPOFSTRUCT lpReOpenBuf,
  [in]  WORD       wStyle
);

Parâmetros

[in] lpFileName

O nome do arquivo.

[out] lpReOpenBuf

Um ponteiro para a estrutura de OFSTRUCT que deve receber informações sobre o arquivo quando o arquivo for aberto pela primeira vez. A estrutura pode ser usada em chamadas subsequentes para a função LZOpenFile para ver o arquivo aberto.

O szPathName membro dessa estrutura contém caracteres do conjunto de caracteres OEM (fabricante de equipamento original).

[in] wStyle

A ação a ser tomada. Esse parâmetro pode ser um ou mais dos valores a seguir.

Valor Significado
OF_CANCEL
0x0800
Ignorado. Fornecido apenas para compatibilidade com o Windows de 16 bits. Use o estilo OF_PROMPT para exibir uma caixa de diálogo contendo um botão Cancelar.
OF_CREATE
0x1000
Direciona LZOpenFile para criar um novo arquivo. Se o arquivo já existir, ele será truncado para tamanho zero.
OF_DELETE
0x0200
Exclui o arquivo.
OF_EXIST
0x4000
Abre o arquivo e o fecha para testar a existência de um arquivo.
OF_PARSE
0x0100
Preenche a estrutura OFSTRUCT, mas não executa nenhuma outra ação.
OF_PROMPT
0x2000
Exibe uma caixa de diálogo se o arquivo solicitado não existir. A caixa de diálogo informa ao usuário que o sistema não pode localizar o arquivo e contém de repetição e cancelar botões de. Clicar no botão Cancelar direciona LZOpenFile para retornar uma mensagem de erro não encontrada.
OF_READ
0x0000
Abre o arquivo somente para leitura.
OF_READWRITE
0x0002
Abre o arquivo para leitura e gravação.
OF_REOPEN
0x8000
Abre o arquivo usando informações no buffer de reabertura.
OF_SHARE_DENY_NONE
0x0040
Abre o arquivo sem negar que outros processos leem ou gravam o acesso ao arquivo. LZOpenFile falhar se o arquivo tiver sido aberto no modo de compatibilidade por qualquer outro processo.
OF_SHARE_DENY_READ
0x0030
Abre o arquivo e nega que outros processos leiam o acesso ao arquivo. LZOpenFile falhar se o arquivo tiver sido aberto no modo de compatibilidade ou tiver sido aberto para acesso de leitura por qualquer outro processo.
OF_SHARE_DENY_WRITE
0x0020
Abre o arquivo e nega que outros processos escrevam acesso ao arquivo. LZOpenFile falhar se o arquivo tiver sido aberto no modo de compatibilidade ou tiver sido aberto para acesso de gravação por qualquer outro processo.
OF_SHARE_EXCLUSIVE
0x0010
Abre o arquivo no modo exclusivo, negando a outros processos acesso de leitura e gravação ao arquivo. LZOpenFile falhar se o arquivo tiver sido aberto em qualquer outro modo para acesso de leitura ou gravação, mesmo pelo processo atual.
OF_WRITE
0x0001
Abre o arquivo somente para gravação.

Valor de retorno

Se a função for bem-sucedida e o valor especificado pelo parâmetro wStyle não for OF_READ, o valor retornado será um identificador que identifica o arquivo. Se o arquivo for compactado e aberto com wStyle definido como OF_READ, o valor retornado será um identificador de arquivo especial.

Se a função falhar, o valor retornado será um código LZERROR_*. Esses códigos têm valores inferiores a zero. Não há informações de erro estendidas para essa função; não chame GetLastError.

Observação LZOpenFile não chama SetLastError nem SetLastErrorEx; portanto, sua falha não afeta o código de último erro de um thread.
 
Veja a seguir a lista dos códigos de erro que LZOpenFile podem retornar após a falha.
Código/valor de retorno Descrição
LZERROR_BADINHANDLE
-1
O identificador que identifica o arquivo de origem não é válido. O arquivo não pode ser lido.
LZERROR_GLOBALLOC
-5
O número máximo de arquivos compactados abertos foi excedido ou a memória local não pode ser alocada.

Observações

Se o parâmetro wStyle for o sinalizador de OF_READ (ou OF_READ e qualquer um dos sinalizadores de OF_SHARE_*) e o arquivo for compactado, LZOpenFile chamará a função LZInit , que executa a inicialização necessária para as operações de descompactação.

O identificador que essa função retorna é compatível apenas com as funções em Lz32.dll; ele não deve ser usado para outras operações de arquivo.

Se LZOpenFile não conseguir abrir o arquivo especificado por lpFileName, em algumas versões do Windows, ele tentará abrir um arquivo com quase o mesmo nome de arquivo, exceto que o último caractere será substituído por um sublinhado ("_"). Portanto, se uma tentativa de abrir "MyProgram.exe" falhar, LZOpenFile tentar abrir "MyProgram.ex_". Os pacotes de instalação geralmente substituem o sublinhado pela última letra de uma extensão de nome de arquivo para indicar que o arquivo está compactado. Por exemplo, "MyProgram.exe" compactado pode ser chamado de "MyProgram.ex_". Para determinar o nome do arquivo aberto (se houver), examine o szPathName membro da estrutura OFSTRUCT no parâmetro lpReOpenBuf.

No Windows 8 e no Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 Sim
TFO (Failover Transparente) do SMB 3.0 Sim
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) Sim
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

CsvFs farão E/S redirecionada para arquivos compactados.

Nota

O cabeçalho lzexpand.h define LZOpenFile como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho lzexpand.h (inclua Windows.h)
biblioteca Lz32.lib
de DLL Lz32.dll

Consulte também

de compactação e descompactação de arquivos

Funções de gerenciamento de arquivos

LZClose

LZInit

LZRead

OFSTRUCT