/// /// 解压文件 /// 解压类型 /// 要解压的文件 public void UnZip(UnzipType type, params string[] zipFile) { ZipInputStream zipStream; ZipEntry entry; for (int i = 0; i < zipFile.Length; i++) { zipStream = new ZipInputStream(File.OpenRead(zipFile[i])); //获取目录名,并创建该目录 string directoryName = ""; if (type == UnzipType.ToNewDirctory) directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf(".")); else directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf("\\")); if (!Directory.Exists(directoryName)) Directory.CreateDirectory(directoryName); //读出每一个文件 while ((entry = zipStream.GetNextEntry()) != null) { //获取文件名 string fileName = entry.Name; if (directoryName.EndsWith("\\")) fileName = directoryName + fileName; else fileName = directoryName + "\\" + fileName; if (fileName == String.Empty) continue; //创建一个文件 if (!Directory.Exists(Path.GetDirectoryName(fileName))) Directory.CreateDirectory(Path.GetDirectoryName(fileName)); FileStream streamWriter = File.Create(fileName); //写入文件 int size = 2048; byte[] data = new byte[2048]; while (true) { size = zipStream.Read(data, 0, data.Length); if (size > 0) { streamWriter.Write(data, 0, size); } else { break; } } streamWriter.Close(); } zipStream.Close(); } }
/// /// 解压文件 /// 解压类型 /// 要解压的文件 public void UnZip(UnzipType type, params string[] zipFile) { ZipInputStream zipStream; ZipEntry entry; for (int i = 0; i < zipFile.Length; i++) { zipStream = new ZipInputStream(File.OpenRead(zipFile[i])); //获取目录名,并创建该目录 string directoryName = ""; if (type == UnzipType.ToNewDirctory) { directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf(".")); } else { directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf("\\")); } if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } //读出每一个文件 while ((entry = zipStream.GetNextEntry()) != null) { //获取文件名 string fileName = entry.Name; if (directoryName.EndsWith("\\")) { fileName = directoryName + fileName; } else { fileName = directoryName + "\\" + fileName; } if (fileName == String.Empty) { continue; } //创建一个文件 if (!Directory.Exists(Path.GetDirectoryName(fileName))) { Directory.CreateDirectory(Path.GetDirectoryName(fileName)); } FileStream streamWriter = File.Create(fileName); //写入文件 int size = 2048; byte[] data = new byte[2048]; while (true) { size = zipStream.Read(data, 0, data.Length); if (size > 0) { streamWriter.Write(data, 0, size); } else { break; } } streamWriter.Close(); } zipStream.Close(); } }