是否有可能从内存中(而不是磁盘上)的文件创建ZipArchive。
以下是用例:多个文件在IENumable中被接收
问题:有没有一种方法可以使用“流”在
ZipArchive
中创建“条目”,这样我就可以直接将文件的内容放入zip中?
我不想先保存文件,创建zip(从保存的文件路径),然后删除单个文件。
这里,
attachmentFiles
是IEnumerable
using (var ms = new MemoryStream())
{
using (var zipArchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
{
foreach (var attachment in attachmentFiles)
{
zipArchive.CreateEntryFromFile(Path.GetFullPath(attachment.FileName), Path.GetFileName(attachment.FileName),
CompressionLevel.Fastest);
}
}
...
}
首先感谢@Alex给出的完美答案
对于需要从文件系统读取的场景:
using (var ms = new MemoryStream())
{
using (var zipArchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
{
foreach (var file in filesAddress)
{
zipArchive.CreateEntryFromFile(file, Path.GetFileName(file));
}
}
...
}
借助系统。木卫一。压缩。ZipFileExtensions
是的,你可以用拉链箱来做。CreateEntry方法,正如@Angelore在注释中指出的,这里描述的是一个稍微不同的问题。
您的代码将如下所示:
using (var ms = new MemoryStream())
{
using (var zipArchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
{
foreach (var attachment in attachmentFiles)
{
var entry = zipArchive.CreateEntry(attachment.FileName, CompressionLevel.Fastest);
using (var entryStream = entry.Open())
{
attachment.InputStream.CopyTo(entryStream);
}
}
}
...
}
问题内容: 我想制作一个内存文件以在pygame混合器中使用。我的意思是这样的(http://www.pygame.org/docs/ref/music.html#pygame.mixer.music.load它说load()方法支持文件对象) 问题答案: 您可能正在寻找或类从Python的包装,无论是在现有的Python 2 和Python 3中 。它们提供了类似于文件的界面,您可以在代码中使用
我是HDFS和Hive的新手。在阅读了一些书籍和文档之后,我得到了这两个方面的一些介绍。我有一个关于在HIVE中创建一个表的问题,该表的文件存在于HDFS中。我有这个文件在HDFS中有300个字段。我想在HDFS中创建一个访问该文件的表。但我想利用这个文件中的30个字段。我的问题是1。配置单元是否创建单独的文件目录?2.我必须先创建配置单元表,然后从HDFS导入数据吗?3.既然我想创建一个300列
如何在内存中而不是硬盘上创建新的
编者按:此代码示例来自Rust 1.0之前的版本,它使用的代码在Rust 1.0中不存在。更新了一些答案,以回答更新版本的Rust的核心问题。 我正在尝试使用创建内存映射文件。目前的做法如下: 这个程序失败了 调用或对数据执行任何其他操作时。 我无法从
我的目标是在内部存储上创建一个XML文件,然后通过share Intent发送它。 我能够使用以下代码创建XML文件 我一直在尝试检索输出文件的Uri以共享它。我首先尝试通过将文件转换为Uri来访问该文件 此返回file:///data/data/com.my.package/files/myfile.xml但我似乎无法将此附加到电子邮件、上载等。 如果我手动检查文件长度,它是正确的,并显示有一个
问题内容: 我已经在下面使用过一段时间了。至少在我访问过的网站上,它似乎是分布最广的。 在Java中,是否有更好/不同的方式将文件读取为字符串? 问题答案: 读取文件中的所有文本 Java 11添加了方法来读取小文件,以String保留行终止符: 对于介于Java 7和11之间的版本,这是一个紧凑而健壮的习惯用法,它包装在实用程序方法中: 从文件中读取文本行 Java 7添加了一种便捷方法,可以将