【发布时间】:2020-04-30 07:39:44
【问题描述】:
我有一些属于某个逻辑类别的文件,例如“Category_A”,以及一些属于不同逻辑类别(“Category_B”)的其他文件。我想创建一个内存 ZIP 对象(MemoryStream,或字节数组,或其他东西),以便 ZIP 对象的结果结构反映以下方案:
ZIP
+-Category_A
| +FileA1
| +FileA2
| ...
+-Category_B
+FileB1
+FileB2
...
源文件系统中不存在目录“Category_A”和“Category_B”,文件来自不同的地方。
是否有可能使用任何库来实现这一点? (我的项目在 .Net 4.0 中,无法升级)。我尝试使用 IonicZip Zip 文件和 GZipStream,但没有找到解决方案。
【问题讨论】:
-
为什么不使用临时目录?然后从中创建一个文件流?
-
如何使用这个流?您似乎允许多种选择,它真的必须是一个文件吗?拉链?
-
这能回答你的问题吗? How to create ZipArchive from files in memory in C#? 您可以将文件夹名称放在
CreateEntryFromFile方法参数中,例如CreateEntryFromFile("CategoryB\\"+filename。这将在 zip 存档中创建文件夹CategoryB