【发布时间】:2018-03-27 08:13:33
【问题描述】:
如何在 Pharo 中创建 zip 文件并将其写入磁盘?
我想我可以在 MemoryStore 中创建结构,然后按以下方式压缩它
root := FileSystem memory root ensureCreateDirectory.
root / 'sample.txt' writeStreamDo: [ :stream | stream << String loremIpsum ].
archive := ZipArchive new.
root allChildren select: #isFile thenDo: [ :each |
each readStreamDo: [ :readStream |
archive addString: readStream contents as: each fullName
]
].
archive writeTo: someFinalWriteStream.
archive close.
但显然通过addString:as: 添加的数据根本没有被压缩。
同样addFile:/addFile:as: 不可用,因为该实现仅适用于真实磁盘,而不适用于内存。
那么有没有其他方法(或外部库)可以压缩我的数据,而无需将所有文件转储到磁盘、压缩到那里并读回最终文件?
【问题讨论】:
标签: zip compression smalltalk pharo