欢迎访问宙启技术站
智能推送

C#实现文件压缩与解压的方法示例【ZIP格式】

发布时间:2023-05-18 00:31:53

文件压缩是一种有效的数据压缩方式,可以减小文件的体积,方便传输和存储。在操作系统中,常用的文件压缩格式有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方法实现文件解压缩。