【问题标题】:Check Zip File content and extract检查 Zip 文件内容并提取
【发布时间】:2016-04-01 07:29:20
【问题描述】:

您好,我想提取一个包含各种文本文件的 ZipFile。但我可能是 de 文本文件在一个文件夹中。所以我想要做的是:如果一个文件夹存在,如果不创建一个名为 ZipFile 的文件夹,则正常提取。原因是我不想在同名文件夹中有一个文件夹。

我以前的代码:

    foreach (string file in newZips) {

        FileInfo fileInfo = new FileInfo(file);
        string dirName = newPath + "\\" + fileInfo.Name.Substring(0, fileInfo.Name.Length - 4);
        Console.WriteLine(dirName);
        Directory.CreateDirectory(dirName);
        ZipFile.ExtractToDirectory(allZipsPath + "\\" + fileInfo.Name, dirName);
    }

【问题讨论】:

  • 你的问题是什么?
  • 如果 Zip 文件包含一个包含文本文件的文件夹,请正常解压缩。如果 Zip 文件不包含文件夹,只有文本文件,则解压缩并创建一个文件夹,该文件夹称为 zip 文件。

标签: c# extract unzip zipfile


【解决方案1】:

也许这对你有帮助:

string path = @"C:\..\..\myFolder";
if(!Directory.Exists(path))
{
    Directory.CreateDirectory(path);
}

这就是您如何检查路径是否包含您期望的文件夹。如果不是,它会创建该文件夹!

--- 编辑(如果未知 zip-Name)---

string myPathToZip = @"C:\..\..\folderName";
foreach (string file in Directory.GetFiles(myPathToZip, "*.zip", SearchOption.AllDirectories))
{ 
    //the current path of the zipFile (with the Name included)
    var path = new FileInfo(file.ToString());

    //The filename
    var filename = Path.GetFileName(file.ToString()).Replace(".zip", "");
}

【讨论】:

  • zipFile 有可能吗?
  • 当然... string myZip = @"C:\...\...\myZip.zip";也是可能的。 C# 的目录类非常强大。
  • 但是如果我不知道 zipFile 中的文件夹名称,因为它可能不同,该怎么办?
  • 抱歉,我需要再次询问。我知道如何加载 zip 文件,但 zip 文件的内容对我来说很重要。是否是 Zipfile 中的文件夹?明白我的意思吗?
  • 你要先解压...然后你才能看到zipfile里有没有文件夹...你可以用楼上的代码检查一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多