C#实现文件压缩与解压的方法示例【ZIP格式】
文件压缩是一种有效的数据压缩方式,可以减小文件的体积,方便传输和存储。在操作系统中,常用的文件压缩格式有ZIP、RAR、TAR等。在本文中,我们将介绍如何在C#中实现ZIP格式的文件压缩与解压。
一、文件压缩
C#中通过使用System.IO.Compression命名空间下的ZipArchive类实现ZIP格式的文件压缩。具体实现方法如下:
1. 首先,需要引用System.IO.Compression和System.IO.Compression.FileSystem命名空间。
2. 创建一个ZipArchive对象,并指定要压缩的文件路径。如下所示:
using (ZipArchive zip = ZipFile.Open(@"C:\Users\test.zip", ZipArchiveMode.Create))
{
zip.CreateEntryFromFile(@"C:\Users\test.txt", "test.txt");
}
上述代码用于将C盘下的test.txt文件压缩成test.zip文件。
3. 如果需要压缩多个文件,可以使用CreateEntryFromFile方法多次调用。如下所示:
using (ZipArchive zip = ZipFile.Open(@"C:\Users\test.zip", ZipArchiveMode.Create))
{
zip.CreateEntryFromFile(@"C:\Users\test1.txt", "test1.txt");
zip.CreateEntryFromFile(@"C:\Users\test2.txt", "test2.txt");
zip.CreateEntryFromFile(@"C:\Users\test3.txt", "test3.txt");
}
上述代码可以将test1.txt、test2.txt、test3.txt三个文件压缩成一个ZIP文件,并保存到C:\Users路径下。
4. 如果需要将某个文件夹中的所有文件都压缩成一个ZIP文件,可以使用System.IO、System.IO.Compression和System.IO.Compression.FileSystem命名空间中的方法。具体代码如下:
string startPath = @"C:\Users\MyZipFile"; string zipPath = @"C:\Users\test.zip"; ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
上述代码将C:\Users\MyZipFile路径下的所有文件压缩成test.zip文件,并保存到C:\Users路径下。
二、文件解压缩
解压缩是将压缩文件恢复成原始文件的过程。C#中通过使用System.IO.Compression命名空间下的ZipArchive类实现ZIP格式的文件解压缩。具体实现方法如下:
1. 首先,需要引用System.IO.Compression和System.IO.Compression.FileSystem命名空间。
2. 创建一个ZipArchive对象,并指定要解压缩的文件路径。如下所示:
using (ZipArchive zip = ZipFile.OpenRead(@"C:\Users\test.zip"))
{
foreach (ZipArchiveEntry entry in zip.Entries)
{
entry.ExtractToFile(@"C:\Users\" + entry.FullName, true);
}
}
上述代码用于将C:\Users路径下的test.zip文件解压缩,并保存到C:\Users路径下。
3. 如果需要解压缩到指定的文件夹中,可以使用ExtractToFile方法,并指定保存路径。如下所示:
using (ZipArchive zip = ZipFile.OpenRead(@"C:\Users\test.zip"))
{
string extractPath = @"C:\Users\MyFolder";
foreach (ZipArchiveEntry entry in zip.Entries)
{
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName), true);
}
}
上述代码用于将C:\Users路径下的test.zip文件解压缩到C:\Users\MyFolder路径下。
总结
本文介绍了如何在C#中实现ZIP格式的文件压缩与解压缩。在压缩文件时,可以使用ZipFile和ZipArchive类,通过CreateEntryFromFile和CreateFromDirectory方法实现文件压缩。解压缩文件时,同样可以使用ZipFile和ZipArchive类,通过ExtractToFile方法实现文件解压缩。
