public static void compactaArquivo(String diretorioCompactar, String diretorioSaida, String dsComentario, String nomeArquivoCompactado, String dsPassword, Boolean criaPasta = true) { /* * http://grapevine.dyndns-ip.com/download/authentec/download/dotnetzip/examples.htm * compactaArquivo(1, 2, 3, 4, 5, 6); * 1 - Local do arquivo compactado * 2 - Local que será usado para salvar o arquivo compactado * 3 - Comentário do arquivo compactado, se não desejar informar passar vazio "" * 4 - Nome do arquivo compactado * 5 - Senha para a compactação * 6 - Se estiver como true ou vazio irá compactar a pasta, se estiver como false irá compactar os arquivos que estão dentro da pasta */ try { using (ZipFile zip = new ZipFile()) { if (!dsPassword.Equals("")) { zip.Password = dsPassword; zip.Encryption = EncryptionAlgorithm.WinZipAes256; } if (criaPasta) { /* * No arquivo zip, a pasta que irá apacer será do diretório localizado * Exemplo: Users\Allan\Desktop\TransmissorNovo * Se passar algum parametro terá o nome da pasta * Exemplo: zip.AddFile(nomearquivo, "NomeDaPasta"); * se deixar zip.AddFile(nomearquivo, ""); não irá pegar o diretório que está sendo compactado */ String[] nomeArquivos = Directory.GetFiles(diretorioCompactar); //Irá compactar somente os arquivos do diretório, não levando em consideração as subpastas existentes no diretório foreach (String nomearquivo in nomeArquivos) { zip.AddFile(nomearquivo); } } else { //Compacta os arquivos e as pastas e subpastas existentes no diretório zip.AddDirectory(diretorioCompactar, ""); } zip.Comment = String.Format("{0} {1:G}", Valida.removeAcentos(dsComentario), DateTime.Now); zip.Save(String.Format("{0}\\{1}.zip", diretorioSaida, nomeArquivoCompactado)); zip.Dispose(); } } catch (Exception erro) { Alert.erro(String.Format("Erro ao compactar o arquivos do diretorio {0} \n", diretorioCompactar) + erro.Message); } }