2016-04-26 12 views
0

ZipArchiveを使用してデータベースから情報を保存するコードを継承しました。これを行うにはBinaryFormatterを使用します。 zipファイルを7-zip(たとえば)で見ると、2つのフォルダと.txtファイルが表示されます。すべてがうまくいきます。私は単にZipArchive内のC:\ tempの下にあるファイルとフォルダで構成される "temp"というフォルダを持つようにコードを修正したいと思う。フォルダ全体またはディスク全体で構成されるエントリ(ZipArchiveEntry?)を追加する簡単な方法はありますか? ZipArchiveのメンバーメソッドで "CreateEntryFromFile"が見えましたが、CreateEntryFromDirectoryはありませんでした。あるいは、それを行うための他の簡単な方法がありますか?誰でもコード例がありますか?私はC:\ tempは、ファイルとディレクトリ(子ディレクトリとファイルなど)の可変数を持つことができるはずです。何とかそれらを列挙しなければならない、自分のディレクトリを作成CreateEntryFromFileを使用する必要がありますか?どんな助けもありがとうございます。.NET ZipArchiveを使用してディレクトリ全体を解凍する余分な情報

私はZIPARCHIVEを読んだときも同様に、私はCに関連したものを利用したい:\ tempに、ちょうどディレクトリにダンプ(Cのように:\ temp_old) おかげで、 デイブ

答えて

0

答えによるとZip folder in C#のuser1469065が私のために働いていました。 user1469065では、ディレクトリ内のすべてのファイル/ディレクトリを取得し(いくつかのクールな "yield"文を使用して)、シリアライズを行う方法を示します。完全性のために、私はdeserializeするコードをuser1469065として提案しました(少なくとも私が彼が提案した方法で行ったと思います)。

private static void ReadTempFileStuff(ZipArchive archive) // adw 
    { 
     var sessionArchives = archive.Entries.Where(x => x.FullName.StartsWith(@"temp_directory_contents")).ToArray(); 
     if (sessionArchives != null && sessionArchives.Length > 0) 
     { 
      foreach (ZipArchiveEntry entry in sessionArchives) 
      { 
       FileInfo info = new FileInfo(@"C:\" + entry.FullName); 
       if (!info.Directory.Exists) 
       { 
        Directory.CreateDirectory(info.DirectoryName); 
       } 
       entry.ExtractToFile(@"C:\" + entry.FullName,true); 
      } 
     } 
    } 
関連する問題