C#打包zip文件可以调用现成的第三方dll,事半功倍,而且该dll完全免费,下载地址: SharpZipLib

下载完解压缩后,把 ICSharpCode.SharpZipLib.dll
拷贝到当前项目的目录下(如果偷懒的话,可以直接拷贝到当前项目的bin/Debug目录下),在VS打开的项目引用上右键添加引用
ICSharpCode.SharpZipLib.dll

然后,在VS打开的项目上右键新建一个类,命名为 ZipHelper.cs,把类里面的所有code清空,复制以下代码,粘贴:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Diagnostics;
  7. using ICSharpCode.SharpZipLib;
  8. using ICSharpCode.SharpZipLib.Zip;
  9. using ICSharpCode.SharpZipLib.Checksums;
  10. using ICSharpCode.SharpZipLib.Core;
  11. namespace ZipOneCode.ZipProvider
  12. {
  13. public class ZipHelper
  14. {
  15. /// <summary>
  16. /// 压缩文件
  17. /// </summary>
  18. /// <param name="sourceFilePath"></param>
  19. /// <param name="destinationZipFilePath"></param>
  20. public static void CreateZip(string sourceFilePath, string destinationZipFilePath)
  21. {
  22. if (sourceFilePath[sourceFilePath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
  23. sourceFilePath += System.IO.Path.DirectorySeparatorChar;
  24. ZipOutputStream zipStream = new ZipOutputStream(File.Create(destinationZipFilePath));
  25. zipStream.SetLevel(6); // 压缩级别 0-9
  26. CreateZipFiles(sourceFilePath, zipStream, sourceFilePath);
  27. zipStream.Finish();
  28. zipStream.Close();
  29. }
  30. /// <summary>
  31. /// 递归压缩文件
  32. /// </summary>
  33. /// <param name="sourceFilePath">待压缩的文件或文件夹路径</param>
  34. /// <param name="zipStream">打包结果的zip文件路径(类似 D:/WorkSpace/a.zip),全路径包括文件名和.zip扩展名</param>
  35. /// <param name="staticFile"></param>
  36. private static void CreateZipFiles(string sourceFilePath, ZipOutputStream zipStream, string staticFile)
  37. {
  38. Crc32 crc = new Crc32();
  39. string[] filesArray = Directory.GetFileSystemEntries(sourceFilePath);
  40. foreach (string file in filesArray)
  41. {
  42. if (Directory.Exists(file)) //如果当前是文件夹,递归
  43. {
  44. CreateZipFiles(file, zipStream, staticFile);
  45. }
  46. else //如果是文件,开始压缩
  47. {
  48. FileStream fileStream = File.OpenRead(file);
  49. byte[] buffer = new byte[fileStream.Length];
  50. fileStream.Read(buffer, 0, buffer.Length);
  51. string tempFile = file.Substring(staticFile.LastIndexOf("//") + 1);
  52. ZipEntry entry = new ZipEntry(tempFile);
  53. entry.DateTime = DateTime.Now;
  54. entry.Size = fileStream.Length;
  55. fileStream.Close();
  56. crc.Reset();
  57. crc.Update(buffer);
  58. entry.Crc = crc.Value;
  59. zipStream.PutNextEntry(entry);
  60. zipStream.Write(buffer, 0, buffer.Length);
  61. }
  62. }
  63. }
  64. }
  65. }

原文地址: http://www.dotnetbbs.com/read.php?tid-59.html

C#打包zip文件可以调用现成的第三方dll,事半功倍,而且该dll完全免费,下载地址:SharpZipLib下载完解压缩后,把 ICSharpCode.SharpZipLib.dll拷贝到当前项目的目录下(如果偷懒的话,可以直接拷贝到当前项目的bin/Debug目录下),在VS打开的项目引用上右键添加引用ICSharpCode.SharpZipLib.dll然后,在VS打开的项目上... string startPath = @".\start"; //要 打包 文件夹 string zip Path = @".\result. zip "; // 打包 存放的路径和压缩包名称 string extractPath = @".\extract"; .
使用VS2015的Visual Studio Installer 打包 安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅 第一步,创建安装项目
前言:前段时间写了个小程序,想分享给好友看看,可所以资源都放在Debug 文件夹 下,整个 文件夹 发给人家这也太……,为了显得稍微专业一点,想把它们 打包 一个EXE 文件 执行,因为我见到到这样的程序,直接一个EXE程序,一点直接运行,顿时感觉好吊,于是乎,搜啊搜,搞定了,总结如下。 原来的一坨 文件 现在的一个单独的EXE 文件 ,看起来就很吊的样 第一步: 打包 将所有的 文件 打包 一个RAR压缩包...
Hello,大家好,我是网呦,今天分享的内容是: C# 操作 文件 压缩与解压( zip 格式 )。该文章Core Code 引用于: C# 文件 压缩与解压 在企业开发过程中经常会遇到 文件 的压缩与解压,虽然网上很多流行的压缩 文件 格式 都是RAR的,但是由于RAR不是一个开放的标准,因此 ZIP 了更多人的选择。如果你不想自己开发的话可以选择开源的项目,比如Sharp Zip Lib就是一个不错的选择。 我在引用的程序上
* Description: * 功能:【该压缩方法来自:https://www.cnblogs.com/Chary/p/No0000DF.html】 * 1、创建 zip 存档,该文档包含指定目录的 文件 目录(单个目录) * 2、创建 zip 存档,该存档包含指定目录的 文件 和目录(多个目录) * 3、递归删除磁盘上的指定 文件夹 目录及 文件 * 4
使用DotNet Zip 包进行 ZIP 包的压缩和解压缩,DotNet Zip 可以通过Nuget管理器安装 public static class CompressHelper /// <summary> /// 压缩单个 文件 /// </summary> /// <param name="fileName"> 文件 名</param> /// <param name="co
我们写好的代码要交给用户使用时,需要通过 打包 将代码变为一个安装 文件 (.exe 文件 或.msi 文件 ),本文详细介绍了以Visual Studio为编译器的情况下,如何将 C# 代码 打包 的方法。 1.新建项目 以WPF(Windows Presentation Foundation)项目为例。打开Visual Studio编译器-> 文件 ->新建->项目->WPF应用(输入名称,程序位...
你可以使用 `Directory.GetFiles()` 方法和 `Path.GetExtension()` 方法来实现遍历 文件夹 下所有的ini 文件 ,具体代码如下: ```csharp using System.IO; string folderPath = @"C:\Folder"; // 文件夹 路径 string[] files = Directory.GetFiles(folderPath, "*.ini", SearchOption.AllDirectories); // 获取所有ini 文件 foreach (string file in files) // 处理每个ini 文件 Console.WriteLine(file); `Directory.GetFiles()` 方法接受三个参数,第一个参数是 文件夹 路径,第二个参数是搜索模式,可以使用通配符 `*` 匹配 文件 名,第三个参数是搜索选项, 包括 只搜索当前目录和搜索所有 目录两种选项。 `Path.GetExtension()` 方法可以获取 文件 的扩展名,如果扩展名为ini,则说明是ini 文件