47 lines
926 B
Plaintext
47 lines
926 B
Plaintext
:sig
|
|
DValue zip_list(String zip_file_name)
|
|
|
|
:params
|
|
zip_file_name : path to the ZIP archive to inspect
|
|
return value : DValue containing archive metadata and an `entries` array
|
|
|
|
:see
|
|
>sys
|
|
zip_create
|
|
zip_read
|
|
zip_extract
|
|
DValue
|
|
|
|
:content
|
|
Reads the central directory from `zip_file_name` and returns structured metadata.
|
|
|
|
The returned tree contains:
|
|
|
|
- `file` : archive path
|
|
- `count` : number of entries
|
|
- `entries` : list of entry metadata
|
|
|
|
Each entry contains:
|
|
|
|
- `name`
|
|
- `index`
|
|
- `size`
|
|
- `compressed_size`
|
|
- `is_directory`
|
|
- `method`
|
|
|
|
Example:
|
|
|
|
|
|
:example
|
|
DValue entries;
|
|
entries["a.txt"] = "alpha";
|
|
entries["b.txt"] = "beta";
|
|
zip_create("/tmp/doc-ziplist.zip", entries);
|
|
DValue listing = zip_list("/tmp/doc-ziplist.zip");
|
|
String names = "";
|
|
listing["entries"].each([&](DValue e, String key) {
|
|
names += (names == "" ? "" : ", ") + e["name"].to_string();
|
|
});
|
|
print(listing["count"].to_u64(), " entries: ", names, "\n");
|