2016-08-03 8 views
0

解凍されたフォルダ内の解凍されたフォルダを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); 
       } 

      } 
     } 
+0

'Directory.GetDirectories(@" C:\ path \ to \ folder ")は、指定されたフォルダ内の** folders **の文字列[]を返します。 **ファイル**のリストをフォルダに入れたい場合は、 'Directory.GetFiles'または' Directory.EnumerateFiles'を使うべきです。また、「zipフォルダ」はファイル(ZIPファイル)であり、「実際のフォルダ」ではないことに注意してください。 – zdimension

答えて

0

GetDirectoriesは、使用する間違ったことです。 Explorerはあなたに嘘をつきます。 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(ZIPファイル)は、それらに対処する方法を確認してください。

+0

私はあなたにそれを言いません*嘘*。何かをzip形式に圧縮すると、フォルダのプロパティが失われてファイルになります。そうでなければ、GetDirectoriesは正しくありません。拡張子.zipを持つすべてのファイルを反復処理する必要があります – Eric

関連する問題