0

.net 4.5 System.IO.Compressionクラスを使用して、内部にディレクトリを含む zip を作成することは可能ですか?

あなたができることを示唆するものは何も見つからないようです。

zip のサブフォルダーに追加したいバイト配列として動的に生成されたファイルが多数あります。

私がこれまでに持っているコードは

var stream = new MemoryStream();
            using (var zip =new ZipArchive(stream, ZipArchiveMode.Create,true))
            {
                var zipEntry = zip.CreateEntry(string.Format("{0} Manual.pdf", plant.Name));

                using (var writer = new BinaryWriter(zipEntry.Open()))
                {
                    writer.Write(manualPdf);
                }

                var attachments = GetAttachments(manual.Headings);


                foreach (var attachment in attachments.Where(attachment => attachment != null && attachment.Data != null))
                {
                    var attachmentEntry = zip.CreateEntry(attachment.FileName);
                    using (var writer = new BinaryWriter(attachmentEntry.Open()))
                    {
                        writer.Write(attachment.Data);
                    }
                }

            }

この場合、添付ファイルのループを zip のサブディレクトリに配置したいと考えています。添付ファイルのリストは byte[] のリストです

4

1 に答える 1

1

ファイル名にフォルダ名を入れてください。Test という名前のフォルダーの例を次に示します。

foreach (var attachment in attachments.Where(attachment => attachment != null && attachment.Data != null))
            {
                var attachmentEntry = zip.CreateEntry(@"Test/" + attachment.FileName);
                using (var writer = new BinaryWriter(attachmentEntry.Open()))
                {
                    writer.Write(attachment.Data);
                }
            }
于 2013-06-11T07:10:44.373 に答える