Exemple #1
0
 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);
     }
 }