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); } }
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); } }