1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

szip: add support for unpacking zip archives and simple zip files

This commit is contained in:
koplenov
2021-04-02 02:59:01 +03:00
committed by GitHub
parent c11356be21
commit 9f7cf5cc37
4 changed files with 100 additions and 15 deletions

View File

@ -2,12 +2,36 @@ import szip
import os
fn test_szip() {
mut z := szip.open('test_compile.zip', .best_speed, .write) or {
assert false
return
// create temp files for zip/unzip test
test_path := 'zip files'
test_out_zip := 'v_test_zip.zip'
os.mkdir(test_path) or { panic(err) }
os.write_file(test_path + os.path_separator + 'file_1.txt', 'file one') or { panic(err) }
os.write_file(test_path + os.path_separator + 'file_2.txt', 'file file two') or { panic(err) }
// get list files from directory
mut files := os.ls(test_path) or { panic(err) }
for mut file in files {
file = os.getwd() + os.path_separator + test_path + os.path_separator + *file
}
defer {
z.close()
os.rm('test_compile.zip') or { }
}
}
// zip files
szip.zip_files(files, test_out_zip) or { panic(err) }
assert os.exists(test_out_zip)
// remove files before next test
os.rm(test_path + os.path_separator + 'file_1.txt') or { panic(err) }
os.rm(test_path + os.path_separator + 'file_2.txt') or { panic(err) }
// extract test
szip.extract_zip_to_dir(test_out_zip, test_path) or { panic(err) }
assert os.exists(test_path + os.path_separator + 'file_1.txt')
assert os.exists(test_path + os.path_separator + 'file_2.txt')
// clear temp files
// remove temp files and dir
os.rmdir_all (test_path) or { panic(err) }
os.rm(test_out_zip) or { }
}