日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# ICSharpCode.SharpZipLib.Zip 的使用

發布時間:2025/7/25 C# 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# ICSharpCode.SharpZipLib.Zip 的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

public static class ZipFileHelper{#region 加壓解壓方法/// <summary> /// 功能:壓縮文件(暫時只壓縮文件夾下一級目錄中的文件,文件夾及其子級被忽略) /// </summary> /// <param name="dirPath">被壓縮的文件夾夾路徑</param> /// <param name="zipFilePath">生成壓縮文件的路徑,為空則默認與被壓縮文件夾同一級目錄,名稱為:文件夾名+.zip</param> /// <param name="err">出錯信息</param> /// <returns>是否壓縮成功</returns> public static bool ZipFile(string dirPath, string zipFilePath, out string err){err = "";if (dirPath == string.Empty){err = "要壓縮的文件夾不能為空!";return false;}if (!Directory.Exists(dirPath)){err = "要壓縮的文件夾不存在!";return false;}//壓縮文件名為空時使用文件夾名+.zip if (zipFilePath == string.Empty){if (dirPath.EndsWith("\\")){dirPath = dirPath.Substring(0, dirPath.Length - 1);}zipFilePath = dirPath + ".zip";}try{string[] filenames = Directory.GetFiles(dirPath);using (ZipOutputStream s = new ZipOutputStream(File.Create(zipFilePath))){s.SetLevel(9);byte[] buffer = new byte[4096];foreach (string file in filenames){ZipEntry entry = new ZipEntry(Path.GetFileName(file));entry.DateTime = DateTime.Now;s.PutNextEntry(entry);using (FileStream fs = File.OpenRead(file)){int sourceBytes;do{sourceBytes = fs.Read(buffer, 0, buffer.Length);s.Write(buffer, 0, sourceBytes);} while (sourceBytes > 0);}}s.Finish();s.Close();}}catch (Exception ex){err = ex.Message;return false;}return true;}/// <summary> /// 功能:解壓zip格式的文件。 /// </summary> /// <param name="zipFilePath">壓縮文件路徑</param> /// <param name="unZipDir">解壓文件存放路徑,為空時默認與壓縮文件同一級目錄下,跟壓縮文件同名的文件夾</param> /// <param name="err">出錯信息</param> /// <returns>解壓是否成功</returns> public static bool UnZipFile(string zipFilePath, string unZipDir, out string err){err = "";if (zipFilePath == string.Empty){err = "壓縮文件不能為空!";return false;}if (!File.Exists(zipFilePath)){err = "壓縮文件不存在!";return false;}//解壓文件夾為空時默認與壓縮文件同一級目錄下,跟壓縮文件同名的文件夾 if (unZipDir == string.Empty)unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));if (!unZipDir.EndsWith("\\"))unZipDir += "\\";if (!Directory.Exists(unZipDir))Directory.CreateDirectory(unZipDir);try{using (ZipInputStream 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 (directoryName.Length > 0){Directory.CreateDirectory(unZipDir + directoryName);}if (!directoryName.EndsWith("\\"))directoryName += "\\";if (fileName != String.Empty){using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name)){int size = 2048;byte[] data = new byte[2048];while (true){size = s.Read(data, 0, data.Length);if (size > 0){streamWriter.Write(data, 0, size);}else{break;}}}}}//while }}catch (Exception ex){err = ex.Message;return false;}return true;}//解壓結束 #endregion}

?

轉載于:https://www.cnblogs.com/GoCircle/p/6429848.html

總結

以上是生活随笔為你收集整理的C# ICSharpCode.SharpZipLib.Zip 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。