c# - 解压目录中的所有 .zip 存档

标签 c# zip system.io.compression

我正在努力配置一个脚本来解压缩目录中的所有 .zip 存档并将提取的文件放入不同的目录中。我想安排此脚本按计划运行以处理传入的 .zip 存档。

对于源目录中的每个 .zip 文件,我需要它将这些文件提取到目标,然后重复,直到处理完所有 .zip 文件。

这是我可怕的尝试。

using System;
using System.IO;
using System.IO.Compression;

namespace Unzipper
{
class Program
  {
    static void Main(string[] args)
    {
        string startPath = @"C:\zipdirectory\";

        foreach(String file in Directory.GetFiles(startPath, "*.zip", SearchOptions.AllDirectories)){allFiles.Add(file);

        string zipPath = @"(output from above??)

        string extractPath = @"C:\unzipdirectory\";

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
  }
}

最佳答案

首先,你得到所有.zip文件在 startPath

对于每个路径,将其解压缩到由 C:\unzipdirectory\<zip_file_name_without_extension_zip> 等组合创建的新文件夹中。

static void Main(string[] args)
    {
        string startPath = @"C:\zipdirectory\";
        string extractPath = @"C:\unzipdirectory\";
        Directory.GetFiles(startPath, "*.zip", SearchOptions.AllDirectories).ToList()
            .ForEach(zipFilePath => {
                var extractPathForCurrentZip = Path.Combine(extractPath, Path.GetFileNameWithoutExtension(zipFilePath));
                if(!Directory.Exists(extractPathForCurrentZip))
                {
                    Directory.CreateDirectory(extractPathForCurrentZip);
                }
                ZipFile.ExtractToDirectory(zipFilePath, extractPathForCurrentZip);
        });
    }

关于c# - 解压目录中的所有 .zip 存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827792/

相关文章:

.net - PowerShell:使用 System.IO. Compression.FileSystem 将文件移动到 zip

c# - 哪个免费的 C# 单元测试框架?

c# - 关于在c#中处理Arraylists的问题

jquery - 使用 JSZip 下载图像会导致浏览器崩溃

java - 如何修复OutOfMemoryError android studio

c# - 使用 System.IO.Compression 创建后无效的 zip 文件

c# - 将任意 json 响应转换为 "things"列表

C# Linq to XML 查询

.net - System.IO.Compression Zip 不使用 UTC

c# - 不包含文件夹的 Zip 文件