static void Main(string[] args) { string temp = args.Length > 0 ? args[0] : @"c:\temp"; string tempunzip = Path.Combine(temp, "unzip"); string filepath = Path.Combine(temp, "uziptest.zip"); Console.WriteLine("start"); try { File.Delete(filepath); } catch (Exception ex) { Console.WriteLine("Ignore : " + ex); } using (var def = new DeflateZipFile(filepath)) { // compress files def.Compress("../UZipDotNet/DeflateZipFile.cs", "NewFileName.txt"); def.Compress("../UZipDotNet/DeflateMethod.cs", "DeflateMethod.cs"); // save archive def.Save(); } // un-compress files using (var inf = new InflateZipFile(filepath)) { inf.Decompress(inf.ZipDir[0], tempunzip, null, true, true); inf.Decompress(inf.ZipDir[1], tempunzip, null, true, true); } Console.WriteLine("end"); }
private static void CrawlDir(string sourceFolder, string destFolder) { try { string folderName = Path.GetFileName(sourceFolder); var files = Directory.GetFiles(sourceFolder).OrderBy(f => f); if (files.Any()) { if (!Directory.Exists(destFolder)) { Directory.CreateDirectory(destFolder); } string zipFileName = Path.Combine(destFolder, folderName + ".zip"); bool doZipFile = true; if (File.Exists(zipFileName)) { if (Options.OverwriteFiles) { DeleteFile(zipFileName); } else { doZipFile = false; } } if (doZipFile) { using (var def = new DeflateZipFile(zipFileName, Options.CompressionLevel)) { // compress files foreach (string file in files) { //string archiveFilename = def.Compress(file, file); } // save archive def.Save(); } } string txtFileName = Path.Combine(destFolder, folderName + ".txt"); if (Options.CreateTextFile) { bool doTxtFile = true; if (File.Exists(txtFileName)) { if (Options.OverwriteFiles) { DeleteFile(txtFileName); } else { doTxtFile = false; } } if (doTxtFile) { using (var sr = File.CreateText(txtFileName)) { long bytes = 0; foreach (var file in files) { var fi = new FileInfo(file); sr.WriteLine(FileFormat, fi.CreationTime, fi.Length, fi.Name); bytes += fi.Length; } sr.WriteLine(TotalFormat, files.Count(), bytes); } } } if (Options.CreateSummaryTextFile) { AllFiles.AddRange(files); } if (Options.ShowProgress) { int progress = (int)(AllFiles.Count * 100.0d / AllFilesToCrawl.Count); if (progress % 2 == 0) { ProgressBar.Draw(progress); } } } foreach (string subFolder in Directory.GetDirectories(sourceFolder).OrderBy(d => d)) { CrawlDir(subFolder, GetPath(subFolder, destFolder)); } } catch (UnauthorizedAccessException ex) { Console.WriteLine(ex.Message); } }