viernes, 6 de junio de 2025

ZIP

CÓDIGO DE ADRIANO BOLLER
//Generar un archivo zip
sArquivoZip is string = fCurrentDir() + "\backup_projeto.zip"
// Caminho da pasta a ser compactada
sPasta is string = fCurrentDir() + "\projeto_completo"
// Se o ZIP já existe, remove
IF fFileExist(sArquivoZip) THEN
    fDelete(sArquivoZip)
END
// Cria o arquivo ZIP
IF NOT zipCreate(sArquivoZip) THEN
    Error("Error criar o arquivo zip: " + zipMsgError())
    RETURN
END
// Adiciona a pasta inteira recursivamente
IF NOT zipAddDirectory(sArquivoZip, sPasta, zipDirectoryRecursive) THEN
    Error("Erro ao adicionar pasta ao zip: " + zipMsgError())
    zipClose(sArquivoZip)
    RETURN
END
// Fecha o arquivo zip após adicionar tudo
zipClose(sArquivoZip)
// Confirmação
Info("Backup compactado com sucesso: " + sArquivoZip)

//
// Procedure: ZipAllFilesInFolder
// Finalidade: Adiciona todos os arquivos de uma pasta no arquivo ZIP
PROCEDURE ZipAllFilesInFolder(sZipFileName is string, sFolderPath is string)

MyArchive is zipArchive
ResOpen is boolean
ResAddFile is boolean
sFileList is array of strings
sCurrentFile is string

// Abre o arquivo ZIP para criação
ResOpen = zipCreate(MyArchive, sZipFileName)

IF NOT ResOpen THEN
   Error("Erro ao criar arquivo ZIP:", zipMsgError(MyArchive))
   RETURN
END

// Garante que o caminho termina com "\"
IF Right(sFolderPath, 1) <> "\" THEN
   sFolderPath += "\"
END

// Lista todos os arquivos na pasta (não inclui subpastas)
sFileList = fListFile(sFolderPath + ".", frFile)

// Loop para adicionar cada arquivo individualmente
FOR EACH sCurrentFile OF sFileList
   // Adiciona o arquivo no ZIP
   ResAddFile = zipAddFile(MyArchive, sFolderPath + sCurrentFile, zipDrive)
   
   IF NOT ResAddFile THEN
      Error("Erro ao adicionar arquivo: " + sCurrentFile + " - " + zipMsgError(MyArchive))
   END
END

// Fecha o arquivo ZIP
zipClose(MyArchive)

// Mensagem de sucesso
Info("Todos os arquivos foram adicionados ao ZIP com sucesso!")

No hay comentarios.:

Publicar un comentario

Try catch end

 // -------------------------------------------------- // Procedure principal que executa uma query com tratamento de exceção // -----------...