new ZipFile()
ZipFile representa um arquivo no formato Zip, localizado no sistema de arquivos do sistema operacional. Todas as funções aceitam apenas caminhos absolutos de arquivos e diretórios.
Examples
// Cria um arquivo Zip utilizando o algoritmo padrão de compressão Deflate
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js');
const zip = new ZipFile();
zip.open(zipFileName, 'create');
zip.write(fileToCompress);
zip.close();
// Cria um arquivo Zip utilizando o algoritmo de compressão Zstd no nível 9 de compressão.
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js');
const zip = new ZipFile();
zip.open(zipFileName, 'create', { method: 'zstd', level: 9 });
zip.write(fileToCompress);
zip.close();
// Criando um arquivo Zip protegido por criptografia AES-256 utilizando uma senha
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js');
const zip = new ZipFile();
zip.open(zipFileName, 'create', { password: 'my-password' });
zip.write(fileToCompress);
zip.close();
// Criando um arquivo Zip com criptografia ZipCrypto para compatibilidade com o extrator do
// Windows (use apenas senhas ASCII para máxima compatibilidade)
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js');
const zip = new ZipFile();
zip.open(zipFileName, 'create', { password: 'my-password', encryption: 'zipcrypto' });
zip.write(fileToCompress);
zip.close();
// Extrai um arquivo Zip protegido por senha
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js');
const zip = new ZipFile();
zip.open(zipFileName, 'unzip', { password: 'my-password' });
zip.extractAll(destinationDir);
zip.close();
Methods
-
close()
-
Fecha o arquivo zip.
-
extract(path, pathToExtract)
-
Extrai um arquivo do arquivo zip. Se deseja-se extrair um arquivo de nome "file" que se encontra dentro da pasta de nome "folder" para a pasta "C:\minhasImagens", deve-se fazer:
Parameters:
Name Type Description pathstring Caminho do arquivo a ser descompactado. O caminho passado deve ser o caminho relativo de dentro do arquivo zip.
pathToExtractstring Caminho da pasta de onde se deseja extrair o arquivo especificado.
Example
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js'); const zip = new ZipFile(); zip.open(zipFileName, 'unzip'); zip.extract('folder/file', destinationDir); zip.close(); -
extractAll(path)
-
Extrai todo o conteúdo de um arquivo zip.
Parameters:
Name Type Description pathstring Caminho da pasta de onde se deseja extrair o conteúdo do arquivo zip.
-
getFileNames()
-
Obtém os nomes de todos os arquivos dentro de um arquivo zip. O conteúdo da variável "nomes", após a execução do código abaixo, poderia ser, por exemplo, ["folder/file2", "file1"].
Returns:
Array com os nomes de todos os arquivos dentro do arquivo zip.
- Type
- Array.<string>
Example
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js'); const zip = new ZipFile(); zip.open(zipFileName, 'unzip'); const names = zip.getFileNames(); zip.close(); -
open(path, mode [, options])
-
Abre ou cria um arquivo zip no caminho especificado.
Parameters:
Name Type Argument Description pathstring Caminho do sistema de arquivos do arquivo a ser aberto ou criado.
mode'create' | 'zip' | 'unzip' Modo em que o arquivo será aberto. Os valores aceitos são:
'create': Um novo arquivo zip, no caminho especificado, é criado e o arquivo é aberto para compactação de arquivos. Nesse modo, se o arquivo já existe, ele é sobrescrito.'zip': O arquivo é aberto para compactação de arquivos.'unzip': O arquivo é aberto para a extração de arquivos ou leitura de informações.
optionsObject <optional>
Opções de compressão e criptografia.
Properties
Name Type Argument Description method'deflate' | 'bzip2' | 'zstd' <optional>
Método de compressão. Métodos suportados:
'deflate','bzip2'e'zstd'. O valor padrão é'deflate'.levelnumber <optional>
Nível de compressão representado por um número. Quanto mais alto o nível, maior a compressão. O intervalo de valores possíveis varia de acordo com o método de compressão utilizado:
deflate: 1 a 9. Valor padrão é 6.bzip2: 1 a 9. Valor padrão é 6.zstd: -7 a 22. Valor padrão é 3. O zero é mapeado para o valor padrão.
passwordstring | Uint8Array | ArrayBuffer <optional>
Senha para criptografia. Pode ser uma
string(codificada em UTF-8), umUint8Arrayou umArrayBuffercom os bytes da senha. Quando informada nos modos'create'e'zip', todos os arquivos adicionados serão criptografados. No modo'unzip', é utilizada para descriptografar os arquivos durante a extração. Importante: a codificação de senhas não é padronizada entre os diferentes softwares de compressão, sendo comum o uso da codificação windows-1252 (Latin-1) no Windows e em softwares mais antigos, e UTF-8 no Linux, MacOS e em softwares mais modernos. Para máxima compatibilidade, recomenda-se o uso de senhas ASCII, sem acentos ou caracteres especiais.encryption'aes256' | 'zipcrypto' <optional>
Modo de criptografia. São suportados os modos
'aes256'para AES-256 (modo padrão), ou'zipcrypto'para a criptografia legada compatível com o extrator nativo do Windows. Atenção: o modo ZipCrypto é considerado inseguro e não é recomendado para proteger arquivos sensíveis. -
write(paths)
-
Compacta arquivos e/ou pastas em um arquivo zip.
Parameters:
Name Type Description pathsstring | Array.<string> Caminhos dos arquivos ou pastas a serem compactados.
Example
const ZipFile = require('@nginstack/engine/lib/compress/ZipFile.js'); const zip = new ZipFile(); zip.open(zipFileName, 'create'); zip.write([fileToCompress, dirToCompress]); zip.close(); -
writeString(string, fileName)
-
Compacta um arquivo, em um arquivo zip, cujo conteúdo é a string especificada.
Parameters:
Name Type Description stringstring String a ser incluída no arquivo que será compactado.
fileNamestring Nome do arquivo que será compactado.