在C#中压缩解压缩文件(适合.Net1.x)
在C#中压缩解压缩文件的两种方式:
使用开源的
SharpZipLib
,下面的代码是使用SharpZipLib做简单封装的压缩解压缩类:
/// <summary>
/// FileZipLib 压缩,解压缩的类
/// </summary>
public class FileZipLib
{
public FileZipLib() {}
/// <summary>
/// 创建一个压缩文件
/// </summary>
/// <param name="zipFilename">压缩后的文件名</param>
/// <param name="sourceDirectory">待压缩文件的所在目录</param>
public static void PackFiles(string zipFilename,string sourceDirectory)
{
FastZip fz = new FastZip() ;
fz.CreateEmptyDirectories = true ;
fz.CreateZip(zipFilename,sourceDirectory,true,"") ;
fz = null ;
}
/// <summary>
/// 解压缩文件
/// </summary>
/// <param name="zipFile">待解压缩的文件</param>
/// <param name="directory">解压缩后文件存放的目录</param>
public static bool UnpackFiles(string zipFile,string directory)
{
if( !Directory.Exists(directory) )
Directory.CreateDirectory(directory) ;
ZipInputStream zis = new ZipInputStream( File.OpenRead(zipFile) ) ;
ZipEntry theEntry = null ;
while( (theEntry = zis.GetNextEntry()) != null )
{
string directoryName = Path.GetDirectoryName(theEntry.Name) ;
string fileName = Path.GetFileName(theEntry.Name) ;
if( directoryName != string.Empty )
Directory.CreateDirectory(directory + directoryName) ;
if( fileName != string.Empty )
{
FileStream streamWriter = File.Create( Path.Combine( directory,theEntry.Name) ) ;
int size = 2048 ;
byte[] data = new byte[size] ;
while ( true )
{
size = zis.Read(data,0,data.Length) ;
if( size > 0 )
streamWriter.Write( data,0,size ) ;
else
break ;
}
streamWriter.Close() ;
}
}
zis.Close() ;
return true ;
}
}
最后别忘了using ICSharpCode.SharpZipLib.Zip ;
以上代码参照
利用 SharpZipLib方便地压缩和解压缩文件
而做了小修改
另外一种方法使用Microsoft J# 类库,具体参考MSDN文章:
通过 C# 使用 J# 类库中的 Zip 类压缩文件和数据
本文首发于http://www.365keyi.com/article.asp?id=5
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?