C#遍历解压一个文件夹中的多个zip文件

这段代码的主要功能是从指定目录中提取所有的.zip文件,并将它们解压到同名的文件夹中。在解压过程中,它使用GB2312编码来处理文件名。

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

var directoryPath = "C:\\tmp\\Score\\fuben";
string[] zipFiles = Directory.GetFiles(directoryPath, "*.zip");
foreach (string file in zipFiles)
{
    string fullFilePath = Path.Combine(directoryPath, file);
    string targetDirectory = Path.Combine(directoryPath, Path.GetFileNameWithoutExtension(file));
    ZipFile.ExtractToDirectory(fullFilePath, targetDirectory, Encoding.GetEncoding("GB2312"), true);
    //ZipFile.ExtractToDirectory(fullFilePath, targetDirectory, Encoding.Default, true);
    Console.WriteLine($"Processing file: {file}");
}

这段代码的详细解释如下:

  1. Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - 注册一个编码提供程序,以便在解压文件时使用GB2312编码。

  2. var directoryPath = "C:\\tmp\\Score\\fuben"; - 设置要处理的目录路径。

  3. string[] zipFiles = Directory.GetFiles(directoryPath, "*.zip"); - 获取目录中所有的.zip文件。

  4. foreach (string file in zipFiles) - 遍历所有的.zip文件。

  5. string fullFilePath = Path.Combine(directoryPath, file); - 获取当前.zip文件的完整路径。

  6. string targetDirectory = Path.Combine(directoryPath, Path.GetFileNameWithoutExtension(file)); - 设置解压目标文件夹的路径,这里使用了.zip文件的名称(不包括扩展名)作为目标文件夹的名称。

  7. ZipFile.ExtractToDirectory(fullFilePath, targetDirectory, Encoding.GetEncoding("GB2312"), true); - 解压.zip文件到目标文件夹,使用GB2312编码处理文件名。

  8. Console.WriteLine($"Processing file: {file}"); - 输出正在处理的文件名。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值