Welcome

首页 / 软件开发 / C# / C#下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩和解压缩

C#下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩和解压缩2014-10-07 csdn博客 衣舞晨风1、压缩某个指定目录下日志,将日志压缩到CompressionDirectory文件夹中,并清除原来未压缩日志。

#region 压缩logs目录下日志 public static void CompresslogDic() {try { string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "logs"; DirectoryInfo logsDic = new DirectoryInfo(logFilePath); FileInfo[] bipLog = logsDic.GetFiles(); DateTime dt = DateTime.Now; List<FileInfo> logsInOneDay = new List<FileInfo>(); for (int i = 0; i < bipLog.Length; i++) { if (bipLog[i].Name.Substring(bipLog[i].Name.Length - 3) != "zip") { logsInOneDay.Add(bipLog[i]); } } if (logsInOneDay.Count > 0) { try { if (!Directory.Exists(logsDic.FullName + "\CompressionDirectory")) { Directory.CreateDirectory(logsDic.FullName + "\CompressionDirectory"); } string compressFileName = dt.ToString("yyyy-MM-dd"); if (File.Exists(logsDic.FullName + "\CompressionDirectory\" + dt.ToString("yyyy-MM-dd") + ".zip")) { Guid guid = Guid.NewGuid(); compressFileName = compressFileName + "-" + guid.ToString(); } compressFileName += ".zip"; Compress(logsInOneDay, logsDic.FullName + "\CompressionDirectory\" + compressFileName, 9, 100); foreach (FileInfo fileInfo in logsInOneDay) { try { fileInfo.Delete(); } catch (Exception e) { //错误信息记录处理 } } } catch (Exception e) { //错误信息记录处理 } }} catch (Exception e) { //错误信息记录处理 } } #endregion
2、压缩指定目录子目录下日志,将日志压缩到CompressionDirectory文件夹中,并清除原来未压缩日志。

#region 压缩logs子目录下日志public static void CompresslogsDic(){try{string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "logs"; DirectoryInfo logsDic = new DirectoryInfo(logFilePath);FileInfo[] bipLog = logsDic.GetFiles();DateTime dt = DateTime.Now;DirectoryInfo[] subLosgDic = logsDic.GetDirectories();foreach (DirectoryInfo bankDic in subLosgDic){dt = DateTime.Now;bipLog = bankDic.GetFiles();List<FileInfo> logsInOneDay = new List<FileInfo>();for (int i = 0; i < bipLog.Length; i++){if (bipLog[i].Name.Substring(bipLog[i].Name.Length - 3) != "zip"){logsInOneDay.Add(bipLog[i]);}}if (logsInOneDay.Count > 0){try{if (!Directory.Exists(bankDic.FullName + "\CompressionDirectory")){Directory.CreateDirectory(bankDic.FullName + "\CompressionDirectory");}string compressFileName = dt.ToString("yyyy-MM-dd");if (File.Exists(bankDic.FullName + "\CompressionDirectory\" + dt.ToString("yyyy-MM-dd") + ".zip")){Guid guid = Guid.NewGuid();compressFileName = compressFileName + "-" + guid.ToString();}compressFileName += ".zip";// 本文URL:http://www.bianceng.cn/Programming/csharp/201410/45594.htmCompress(logsInOneDay, bankDic.FullName + "\CompressionDirectory\" + compressFileName, 9, 100);foreach (FileInfo fileInfo in logsInOneDay){try{fileInfo.Delete();}catch (Exception e){//错误信息记录处理}}}catch (Exception e){//错误信息记录处理}}} }catch (Exception e){//错误信息记录处理}}#endregion
3、压缩文件