C#打包zip文件可以调用现成的第三方dll,事半功倍,而且该dll完全免费,下载地址:
SharpZipLib
下载完解压缩后,把 ICSharpCode.SharpZipLib.dll
拷贝到当前项目的目录下(如果偷懒的话,可以直接拷贝到当前项目的bin/Debug目录下),在VS打开的项目引用上右键添加引用
ICSharpCode.SharpZipLib.dll
然后,在VS打开的项目上右键新建一个类,命名为 ZipHelper.cs,把类里面的所有code清空,复制以下代码,粘贴:
-
using System;
-
using System.Collections.Generic;
-
using System.Linq;
-
using System.Text;
-
using System.IO;
-
using System.Diagnostics;
-
using ICSharpCode.SharpZipLib;
-
using ICSharpCode.SharpZipLib.Zip;
-
using ICSharpCode.SharpZipLib.Checksums;
-
using ICSharpCode.SharpZipLib.Core;
-
namespace ZipOneCode.ZipProvider
-
{
-
public class ZipHelper
-
{
-
/// <summary>
-
/// 压缩文件
-
/// </summary>
-
/// <param name="sourceFilePath"></param>
-
/// <param name="destinationZipFilePath"></param>
-
public static void CreateZip(string sourceFilePath, string destinationZipFilePath)
-
{
-
if (sourceFilePath[sourceFilePath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
-
sourceFilePath += System.IO.Path.DirectorySeparatorChar;
-
ZipOutputStream zipStream = new ZipOutputStream(File.Create(destinationZipFilePath));
-
zipStream.SetLevel(6); // 压缩级别 0-9
-
CreateZipFiles(sourceFilePath, zipStream, sourceFilePath);
-
zipStream.Finish();
-
zipStream.Close();
-
}
-
/// <summary>
-
/// 递归压缩文件
-
/// </summary>
-
/// <param name="sourceFilePath">待压缩的文件或文件夹路径</param>
-
/// <param name="zipStream">打包结果的zip文件路径(类似 D:/WorkSpace/a.zip),全路径包括文件名和.zip扩展名</param>
-
/// <param name="staticFile"></param>
-
private static void CreateZipFiles(string sourceFilePath, ZipOutputStream zipStream, string staticFile)
-
{
-
Crc32 crc = new Crc32();
-
string[] filesArray = Directory.GetFileSystemEntries(sourceFilePath);
-
foreach (string file in filesArray)
-
{
-
if (Directory.Exists(file)) //如果当前是文件夹,递归
-
{
-
CreateZipFiles(file, zipStream, staticFile);
-
}
-
else //如果是文件,开始压缩
-
{
-
FileStream fileStream = File.OpenRead(file);
-
byte[] buffer = new byte[fileStream.Length];
-
fileStream.Read(buffer, 0, buffer.Length);
-
string tempFile = file.Substring(staticFile.LastIndexOf("//") + 1);
-
ZipEntry entry = new ZipEntry(tempFile);
-
entry.DateTime = DateTime.Now;
-
entry.Size = fileStream.Length;
-
fileStream.Close();
-
crc.Reset();
-
crc.Update(buffer);
-
entry.Crc = crc.Value;
-
zipStream.PutNextEntry(entry);
-
zipStream.Write(buffer, 0, buffer.Length);
-
}
-
}
-
}
-
}
-
}
原文地址:
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
文件
。