diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Web/ZipHelper.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Web/ZipHelper.cs
index e5d92ee49..dd2c1ca8b 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Web/ZipHelper.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Web/ZipHelper.cs
@@ -71,5 +71,90 @@ namespace ZipOneCode.ZipProvider
}
}
}
+
+ ///
+ /// 功能:解压zip格式的文件。
+ ///
+ /// 压缩文件路径
+ /// 解压文件存放路径,为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹
+ /// 解压是否成功
+ public static bool UnZip(string zipFilePath, string unZipDir)
+ {
+ try
+ {
+ if (zipFilePath == string.Empty)
+ {
+ throw new Exception("压缩文件不能为空!");
+ }
+ if (!File.Exists(zipFilePath))
+ {
+ throw new FileNotFoundException("压缩文件不存在!");
+ }
+ //解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹
+ if (unZipDir == string.Empty)
+ {
+ unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));
+ }
+ if (!unZipDir.EndsWith("/"))
+ {
+ unZipDir += "/";
+ }
+ if (!Directory.Exists(unZipDir))
+ {
+ Directory.CreateDirectory(unZipDir);
+ }
+ using (var s = new ZipInputStream(File.OpenRead(zipFilePath)))
+ {
+
+ ZipEntry theEntry;
+
+ while ((theEntry = s.GetNextEntry()) != null)
+ {
+ string directoryName = Path.GetDirectoryName(theEntry.Name);
+ string fileName = Path.GetFileName(theEntry.Name);
+ if (!string.IsNullOrEmpty(directoryName))
+ {
+ Directory.CreateDirectory(unZipDir + directoryName);
+ }
+ if (directoryName != null && !directoryName.EndsWith("/"))
+ {
+ }
+
+ if (fileName != String.Empty)
+ {
+ using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name))
+ {
+
+ int size;
+ byte[] data = new byte[2048];
+ while (true)
+ {
+ size = s.Read(data, 0, data.Length);
+ if (size > 0)
+ {
+ streamWriter.Write(data, 0, size);
+ }
+ else
+ {
+ break;
+ }
+ }
+ streamWriter.Close();
+ }
+ }
+ }
+ s.Close();
+ }
+ return true;
+ }
+ catch (Exception e)
+ {
+
+ return false;
+ }
+
+ }
+
+
}
}
\ No newline at end of file