From 7bf48edd1887e30ebeabc236b8e7f5a5fcd25674 Mon Sep 17 00:00:00 2001
From: dyy <807692433@qq.com>
Date: Wed, 21 Dec 2022 16:12:04 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91ZipHelper?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=A3=E5=8E=8Bzip=E6=A0=BC=E5=BC=8F?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Learun.Util/Learun.Util/Web/ZipHelper.cs | 85 +++++++++++++++++++
1 file changed, 85 insertions(+)
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