private void OpenZipFile(string zipFilePath) { this.zipFilePath = zipFilePath; int fileCnt = 0; long totalByte = 0; string ext = Path.GetExtension(zipFilePath).ToLower(); ZipData zipData = null; if (ext == ".sip") { zipData = ShimZip.GetZipData(this.zipFilePath, ref fileCnt, ref totalByte); } else if (ext == ".pak") { zipData = QuakePak.GetZipData(this.zipFilePath, ref fileCnt, ref totalByte); } string zipFileName = Path.GetFileName(zipFilePath); this.ZipToTree(zipData, Path.GetFileName(zipFilePath)); }
// == event handler private void zipToolStripMenuItem_Click(object sender, EventArgs e) { if (this.dlgFolder.ShowDialog(this) != DialogResult.OK) { return; } string dir = this.dlgFolder.SelectedPath; this.dlgSave.InitialDirectory = Path.GetDirectoryName(dir); this.dlgSave.FileName = Path.GetFileName(dir) + ".sip"; if (this.dlgSave.ShowDialog(this) != DialogResult.OK) { return; } string zipFilePath = this.dlgSave.FileName; var files = Directory.GetFiles(dir); var dirs = Directory.GetDirectories(dir); var t1 = DateTime.Now; int fileCnt = 0; long totalByte = 0; var zipData = ZipData.MakeZipData(files, dirs, ref fileCnt, ref totalByte); int encFileCnt = 0; if (Path.GetExtension(zipFilePath).ToLower() == ".sip") { encFileCnt = ShimZip.ZipFile(zipData, zipFilePath); } else { } var dt = DateTime.Now - t1; MessageBox.Show($"{encFileCnt} files ziped to {zipFilePath}.\r\nelapse time : {dt.TotalSeconds:0.0}s"); }