枚举解压缩文件夹

时间:2016-08-03 23:37:45

标签: c# zip

我正在尝试使用Directory.GetDirectories(folderPath)枚举解压缩文件夹中的压缩文件夹。 我遇到的问题是它似乎没有找到压缩文件夹,当我来遍历string[]时,它是空的。

Directory.GetDirectories()是否有错误的方法来解决这个问题?如果是这样,有什么方法可以达到这个目的?

文件路径示例:C:\...\...\daily\daily\{series of zipped folder}

public void CheckZippedDailyFolder(string folderPath)
      {
          if(folderPath.IsNullOrEmpty())
              throw new Exception("Folder path required");

          foreach (var folder in Directory.GetDirectories(folderPath))
          {
              var unzippedFolder = Compression.Unzip(folder + ".zip", folderPath);

              using (TextReader reader = File.OpenText(unzippedFolder + @"\" + new DirectoryInfo(folderPath).Name))
              {
                  var csv = new CsvReader(reader);
                  var field = csv.GetField(0);
                  Console.WriteLine(field);
              }

          }
      }

1 个答案:

答案 0 :(得分:0)

GetDirectories是错误的使用方法。探险家骗你; zip文件实际上是扩展名为.zip的文件,而不是文件系统级别的真实目录。

看看: https://msdn.microsoft.com/en-us/library/system.io.compression.ziparchive.entries%28v=vs.110%29.aspx(ZipArchive.Entries)和/或 https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile%28v=vs.110%29.aspx(ZipFile)了解如何处理它们。