コード例 #1
0
ファイル: Zip.cs プロジェクト: NickHola/Backupper
        private static bool ThrComprimi(Dictionary <string, string> dizionarioDaCompr, string percNomeFileCompr, TipiArchivio formatoArchivio, CompressionLevels livelloCompr, string passsword, Progressione Progressione)
        {
            Thr.SbloccaThrPadre();
            SevenZipCompressor zipCompressor;

            try {
                zipCompressor = new SevenZipCompressor();

                if (Progressione != null)
                {
                    progressioniAttuali.Add(zipCompressor.UniqueID, Progressione);
                }

                zipCompressor.CompressionMode   = CompressionMode.Create;
                zipCompressor.TempFolderPath    = Path.GetTempPath();
                zipCompressor.ArchiveFormat     = (OutArchiveFormat)(int)formatoArchivio;
                zipCompressor.CompressionMethod = CompressionMethod.Lzma; //ATTENZIONE: la libreria 16.04 con Lzma2 in alcuni casi va in errore
                if (passsword != null)
                {
                    zipCompressor.EncryptHeaders      = true;
                    zipCompressor.ZipEncryptionMethod = ZipEncryptionMethod.Aes256;
                }

                //il formato 7zip se la dll viene eseguita a 32bit non accetta un livello di compressione superiore a Normal
                if (formatoArchivio == TipiArchivio.sevenZip && livelloCompr > CompressionLevels.Normal && Environment.Is64BitProcess == false)
                {
                    livelloCompr = CompressionLevels.Normal;
                }
                zipCompressor.CompressionLevel = (SevenZip.CompressionLevel)(int) livelloCompr;

                zipCompressor.Compressing         += PercentualeCompressa;
                zipCompressor.CompressionFinished += CompressioneTerminata;

                zipCompressor.CompressFileDictionary(dizionarioDaCompr, percNomeFileCompr, passsword);

                return(true);
            } catch (Exception ex) {
                if (Progressione != null)
                {
                    Progressione.ScatenaEventoTerminataConErrori(ex.Message);
                }
                //If progressioniAttuali.ContainsKey(zipCompressor.UniqueID) Then progressioniAttuali(zipCompressor.UniqueID).ScatenaEventoTerminataConErrori(ex.Message)
                return(false);
            }
        }
コード例 #2
0
ファイル: Zip.cs プロジェクト: NickHola/Backupper
        private static bool ThrDeComprimi(string percNomeFileZip, string percorsoEstrazione, string passsword, Progressione progressione = null)
        {
            Thr.SbloccaThrPadre();

            SevenZipExtractor zipExtractor;

            try
            {
                if (passsword == null)
                {
                    zipExtractor = new SevenZipExtractor(percNomeFileZip);
                }
                else
                {
                    zipExtractor = new SevenZipExtractor(percNomeFileZip, passsword);
                }


                if (progressione != null)
                {
                    progressioniAttuali.Add(zipExtractor.UniqueID, progressione);
                }

                zipExtractor.Extracting         += PercentualeEstratta;
                zipExtractor.ExtractionFinished += EstrazioneTerminata;

                zipExtractor.ExtractArchive(percorsoEstrazione);

                return(true);
            } catch (Exception ex) {
                if (progressione != null)
                {
                    progressione.ScatenaEventoTerminataConErrori(ex.Message);
                }
                //If progressioniAttuali.ContainsKey(zipExtractor.UniqueID) Then progressioniAttuali(zipExtractor.UniqueID).ScatenaEventoTerminataConErrori(ex.Message)
                return(false);
            }
        }