添加引用,添加SharpZipLib.dll
SharpZipLib.dll 的下载网址:http://www.icsharpcode.net/OpenSource/SharpZipLib/
//***************CodeTest*************************************
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;
class Test
{
//This is the method of zip:
//SrcFile 源文件路径,DstFile 压缩后目标文件的路径,BufferSize 缓冲期大小
public static void Zip(string SrcFile, string DstFile, int BufferSize)
{
FileStream fileStreamIn = new FileStream(SrcFile, FileMode.Open, FileAccess.Read);
FileStream fileStreamOut = new FileStream(DstFile, FileMode.Create, FileAccess.Write);
ZipOutputStream zipOutStream = new ZipOutputStream(fileStreamOut);
byte[] buffer = new byte[BufferSize];
ZipEntry entry = new ZipEntry(Path.GetFileName(SrcFile));
zipOutStream.PutNextEntry(entry);
int size;
do
{
size = fileStreamIn.Read(buffer, 0, buffer.Length);
zipOutStream.Write(buffer, 0, size);
} while (size > 0);
zipOutStream.Close();
fileStreamOut.Close();
fileStreamIn.Close();
}
//This is the method of unzip:
//SrcFile 源文件路径,DstFile 解压缩后目标文件的路径,BufferSize 缓冲期大小
public static void UnZip(string SrcFile, string DstFile, int BufferSize)
{
FileStream fileStreamIn = new FileStream(SrcFile, FileMode.Open, FileAccess.Read);
ZipInputStream zipInStream = new ZipInputStream(fileStreamIn);
ZipEntry entry = zipInStream.GetNextEntry();
FileStream fileStreamOut = new FileStream(DstFile, FileMode.Create, FileAccess.Write);
int size;
byte[] buffer = new byte[BufferSize];
do
{
size = zipInStream.Read(buffer, 0, buffer.Length);
fileStreamOut.Write(buffer, 0, size);
} while (size > 0);
zipInStream.Close();
fileStreamOut.Close();
fileStreamIn.Close();
}
public static void Main(string[] args)
{
try
{
//定义文件路径
string SrcFile = @"C:\temp\MyTest.txt";
string DstFile = @"C:\temp\MyTest.zip";
//默认缓冲器字节大小
int BufferSize = 4096;
//压缩文件,将 SrcFile 文件压缩为 DstFile 文件
Zip(SrcFile, DstFile, BufferSize);
//解压缩文件,将压缩文件 DstFile 解压为 SrcFile 文件
//UnZip(DstFile, SrcFile, BufferSize);
}
catch (IOException ex)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(ex.ToString());
Console.ReadKey();
}
}
}
//***************EndCode*************************************
GZipStream 类:提供用于压缩和解压缩流的方法和属性。
//***************CodeTest************************************
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.IO.Compression;//使用压缩类
class Test
{
static void SaveCompressedFile(string filename, string data)
{
//创建一个 FileStream 对象
FileStream fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write);
//创建一个 GZipStream 对象,Compress 表示压缩基础流。
GZipStream compressionStream = new GZipStream(fileStream, CompressionMode.Compress);
//实现一个 write,使其以一种特定的编码向流中写入字符。
StreamWriter writer = new StreamWriter(compressionStream);
writer.Write(data);
writer.Close();
}
static string LoadCompressedFile(string filename)
{
//创建一个 FileStream 对象
FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
//创建一个 GZipStream 对象,Decompress 表示解压缩基础流。
GZipStream compressionStream = new GZipStream(fileStream, CompressionMode.Decompress);
//实现从字符串进行读取
StreamReader reader = new StreamReader(compressionStream);
string data = reader.ReadToEnd();
reader.Close();
return data;
}
public static void Main(string[] args)
{
try
{
//定义文件路径
string filename = @"c:\compressedFile.txt";
Console.WriteLine("Enter a string to compress (will be repeated 100 times):");
//再控制台上输入文字
string sourceString = Console.ReadLine();
StringBuilder sourceStringMultiplier = new StringBuilder(sourceString.Length * 100);
for (int i = 0; i < 100; i++)
{
sourceStringMultiplier.Append(sourceString);
}
sourceString = sourceStringMultiplier.ToString();
Console.WriteLine("Source data is {0} bytes long.", sourceString.Length);
SaveCompressedFile(filename, sourceString);
Console.WriteLine("\nData saved to {0}.", filename);
FileInfo compressedFileData = new FileInfo(filename);
Console.WriteLine("Compressed file is {0} bytes long.", compressedFileData.Length);
string recoveredString = LoadCompressedFile(filename);
recoveredString = recoveredString.Substring(0, recoveredString.Length / 100);
Console.WriteLine("\nRecovered data: {0}", recoveredString);
Console.ReadKey();
}
catch (IOException ex)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(ex.ToString());
Console.ReadKey();
}
}
}
//***************EndCode*************************************
//***************CodeTest*************************************
//***************EndCode*************************************
分享到:
相关推荐
在C#编程环境中,处理压缩文件是常见的任务之一,尤其是当你需要打包或解压数据时。ZIP格式是一种广泛使用的压缩格式,它允许我们将多个文件压缩到一个单一的ZIP档案中,以便于存储、传输和分享。本文将深入探讨如何...
在.NET框架中,C#提供了内置的压缩和解压缩功能,主要通过`...通过这些方法,开发者可以在C#中高效地处理大文件的GZip压缩和解压缩任务,而无需依赖第三方库。在实际项目中,可以根据具体需求对代码进行优化和调整。
总结来说,C#提供了强大的文件压缩和解压缩功能,通过ZipArchive类可以方便地处理ZIP文件,而GZipStream和DeflateStream则用于流式压缩。在实际开发中,可以根据需求选择合适的方法进行文件或数据的压缩与解压缩操作...
本资源"**C#对压缩文件的加密解密.rar**"显然是一个C#实现的项目,专注于在Winform应用程序中对zip、jar和rar三种常见压缩格式进行加密和解密的操作。 首先,让我们了解C#中的压缩技术。`System.IO.Compression`...
在C#编程环境中,处理压缩文件是一项常见的任务,可以用于数据备份、文件传输或优化存储空间。本篇文章将深入探讨如何使用C#操作压缩文件,包括创建、读取和解压ZIP格式的文件,以及一些实用的例子来帮助你更好地...
总的来说,"C#批量压缩文件为zip文件类库"是一个用于批量压缩文件的解决方案,它结合了C#内置的ZipArchive类和第三方的SharpZipLib库,为开发者提供了一种高效且易于使用的工具,用于处理大量的文件压缩任务。
在.NET开发环境中,C#语言提供了多种方法来处理文件的压缩和解压缩任务。其中,ICSharpCode.SharpZipLib是一个流行的开源库,为开发者提供了强大的文件压缩和解压缩功能。这个库支持多种压缩格式,如ZIP、GZip、BZip...
首先,我们需要引入System.IO.Compression命名空间,这是处理压缩文件的基础。在C#代码文件的开头,添加以下语句: ```csharp using System.IO; using System.IO.Compression; ``` **压缩文件:** 要压缩一个或多...
在C#编程环境中,文件压缩是一项常见的任务,用于节省存储空间和...在实际项目中,根据具体需求,我们可以进一步扩展这些类和方法,例如添加错误处理、进度回调、多线程处理等功能,以提供更全面的文件压缩解决方案。
在C#编程中,压缩文件是一项常见的任务,可以有效地减小文件或文件夹的存储空间。本示例文件提供了一个关于如何在C#中实现文件压缩的实例。使用C#进行文件压缩通常涉及到.NET框架提供的System.IO.Compression命名...
总的来说,C#提供了一套强大的工具来处理压缩和解压任务,无论是单个文件还是整个文件夹,都能通过简单的API调用实现。在WebApplication48这样的项目中,这些功能可能用于备份数据、传输文件或者优化存储需求。通过...
总结,C#提供了一套强大的工具来处理图片压缩和文件压缩。使用ImageSharp库可以灵活地对图片进行有损或无损压缩,而ZipArchive类则允许我们将多个文件打包成ZIP格式,并支持各种自定义设置。通过掌握这些技术,...
根据给定的信息,本文将详细解释C#中用于解压缩文件或文件夹的类库以及一个具体的示例类`ZipClass`。此示例代码片段提供了压缩文件夹的基本功能,并展示了如何利用`ICSharpCode.SharpZipLib`库来实现。 ### C#中的...
结合以上两个功能,你可以创建一个完整的C#应用,不仅能够压缩文件,还能生成记录压缩文件信息的XML文档。这对于自动化备份、数据传输和日志记录等场景都十分有用。 总的来说,C#提供了一套强大的工具来处理文件...
以下是一个解压缩文件的C#代码示例: ```csharp public void ExtractArchive(string archivePath, string targetExtractPath) { var process = new Process(); process.StartInfo.FileName = "rar.exe"; process...
在C#编程环境中,压缩文件是一项常见的任务,尤其在数据传输和存储中。本文将深入探讨如何使用C#来压缩单个文件以及多个文件,并基于VS2010的WinForm界面实现这一功能。 首先,我们需要引入System.IO.Compression...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及游戏等领域。本主题聚焦于“C#在线压缩文件源...在处理压缩文件时,务必注意错误处理,确保在出现异常时能够妥善地恢复或报告状态。
此外,ZipArchive类则提供了对ZIP文件格式的支持,这是最常见的压缩文件格式之一。 **GZIP和DEFLATE** 1. **GZIP**: 是一种广泛使用的压缩格式,基于DEFLATE算法,并添加了文件头和文件尾信息,使得文件可被识别和...
在.NET Framework中,`System.IO.Compression`命名空间提供了一系列的类用于处理压缩文件,如`ZipArchive`。我们可以利用`ZipArchive`创建一个新的ZIP文件,并将XML数据写入到其中的一个ZIP条目(ZipArchiveEntry)...
- 对于已压缩的ZIP文件,你可以使用`ZipArchive`的静态方法`Open`打开它,然后遍历`ZipArchive.Entries`集合,对每个条目调用`ExtractToFile`方法,指定目标路径以解压缩文件。 4. **解压缩目录**: - 解压缩整个...