我认为最好将它分成两个单独的问题,以帮助新手找到答案。
Previous question是关于从zip存档中提取数据。但现在我需要任何显示如何将数据添加到zip存档的示例。
有2种情况。
1.独立文件
2.测试字符串如:string foo = "qwerty";
如何将它发送到zip?
在std.zip
的docx我找到了方法addMember(ArchiveMember de);
,但我不明白如何将数据传递给它。
答案 0 :(得分:0)
显然,新文档没有显示此模块的用法。我阅读了源代码,并找出了这样做的方法:
import std.file: write;
import std.string: representation;
import std.zip: ArchiveMember, ZipArchive;
void main()
{
char[] contents = "This is my test data.\n".dup;
// Create the archive.
auto zip = new ZipArchive();
// Create the archive entry
ArchiveMember ae = new ArchiveMember();
ae.name = "test.txt";
ae.expandedData(contents.representation);
// Add to the entry to the archive.
zip.addMember(ae);
// Build the archive.
void[] compressed_data = zip.build();
// Write the archive data to a file.
write("test.zip", compressed_data);
}
它有效:
$ ./addzip
$ unzip test.zip
Archive: test.zip
extracting: test.txt
$ cat test.txt
This is my test data.
Phobos的下一个版本将在文档中提供示例,说明如何读取和写入zip文件。