C#應用iCSharpcode停止文件緊縮完成辦法。本站提示廣大學習愛好者:(C#應用iCSharpcode停止文件緊縮完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用iCSharpcode停止文件緊縮完成辦法正文
本文所述為一個C#應用iCSharpcode緊縮的應用類,經測試後果不錯。分享給年夜家供年夜家參考之用。詳細辦法以下:
1.參數類
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ZipCompress { public class ZipParameter { private string zip_Name = ""; private string zip_DirectoryName = ""; private List<string> zip_FileList = new List<string>(); /// <summary> /// 緊縮後的文件稱號 /// </summary> public string ZIPName { get { return zip_Name; } set { zip_Name = value; } } /// <summary> /// 緊縮的文件途徑 /// </summary> public string ZIPDirectoryName { get { return zip_DirectoryName; } set { zip_DirectoryName = value; } } /// <summary> /// 緊縮的文件列表 /// </summary> public List<string> ZIPFileList { get { return zip_FileList; } set { zip_FileList = value; } } } }
2.任務類
//**************************************************************************************** //功效:完成文件緊縮 //應用辦法:設置參數停止緊縮 //***************************************************************************************** using System; using ICSharpCode.SharpZipLib.Zip; using System.IO; using System.Text; namespace ZipCompress { public class CompressFile { /// <summary> /// 緊縮文件參數 /// </summary> public ZipParameter ZipParameter { get; set; } /// <summary> /// 緊縮文件前往緊縮後的信息 /// </summary> /// <returns>string 前往緊縮後的提醒信息</returns> public string CompressReturnMsg() { FileStream Zip_File; ZipOutputStream ZipStream; ZipEntry ZipEntry; string rtnMessage = "";//前往的信息 try { //輪回文件,假如文件不存在就不添加的緊縮外面 for (int i = 0; i < ZipParameter.ZIPFileList.Count; i++) { if (!File.Exists(ZipParameter.ZIPFileList[i])) { ZipParameter.ZIPFileList.RemoveAt(i); i--; } } //沒有有文件上面的緊縮不履行 if (ZipParameter.ZIPFileList.Count == 0) { return " file not find"; } //沒有目次停止創立 if (!Directory.Exists(ZipParameter.ZIPDirectoryName)) { Directory.CreateDirectory(ZipParameter.ZIPDirectoryName); } // 處理文檔稱號亂碼成績,湧現亂碼就是由於CodePage纰謬 Encoding gbk = Encoding.GetEncoding("gbk"); ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = gbk.CodePage; //文件途徑,文檔途徑與文件稱號 string strPath = ZipParameter.ZIPDirectoryName + ZipParameter.ZIPName; Zip_File = File.Create(strPath); ZipStream = new ZipOutputStream(Zip_File); foreach (string FileToZip in ZipParameter.ZIPFileList) { Zip_File = File.OpenRead(FileToZip); byte[] buffer = new byte[Zip_File.Length]; Zip_File.Read(buffer, 0, buffer.Length); Zip_File.Close(); ZipEntry = new ZipEntry(Path.GetFileName(FileToZip)); ZipStream.PutNextEntry(ZipEntry); ZipStream.Write(buffer, 0, buffer.Length); } ZipStream.Finish(); ZipStream.Close(); Zip_File.Close(); rtnMessage = "success"; } catch (Exception ex) { rtnMessage = "fail:" + ex.Message; } finally { GC.Collect(); GC.Collect(1); } return rtnMessage; } } }
3.應用類
ZipParameter zp = new ZipParameter(); zp.ZIPDirectoryName = @"C:\Users\Public\Pictures\Sample Pictures\"; zp.ZIPName = "Test.zip"; zp.ZIPFileList.Add(@"C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg"); zp.ZIPFileList.Add(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"); zp.ZIPFileList.Add(@"C:\Users\Public\Pictures\Sample Pictures\毛病文件.jpg"); CompressFile cprFile = new CompressFile(); cprFile.ZipParameter = zp; string strMessage = cprFile.CompressReturnMsg();
4.文件源碼點此本站下載
願望本文所述對年夜家的C#法式設計有所贊助。