生成压缩文件细节(要将目录也加进去)
写工具时通常会生成ZIP文件,一般来说就传相对路径和内容就好。但是今天发现一个细节。还需要将文件所在的目录也要传进去。虽然现在的解压软件都支持不传,但是如果解压的代码不规范就会造成保存路径不存在,因为父级目录不存在:
let file: File = File::create(zip_path).unwrap();
let mut writer: ZipWriter<File> = ZipWriter::new(file);
let options = zip::write::FileOptions::default()
.compression_method(zip::CompressionMethod::Deflated);
// 因为这里已经将所有目录 遍历好。目录结构已经不存在的,只能通过文件路径反向还原,并使用map去重
let mut dirMap:HashMap<String, bool> = HashMap::new();
// .... 中间省略循环遍历
// 先将文件目录结构创建
let arr:Vec<&str> = path.split('/').collect();
let mut tmp_dir: String = String::new();
for i in 0..(arr.len() - 1) {
let tmp = arr[i];
tmp_dir.push('/');
tmp_dir.push_str(tmp);
if dirMap.contains_key(&tmp_dir){ // 缓存保存过的目录
continue;
}
dirMap.insert(tmp_dir.clone(), true);
writer.add_directory(&tmp_dir, options).unwrap();
}
// 将文件写入ZIP
let mut buffer = Vec::new();
let mut file = File::open(&tmp_path).unwrap();
file.read_to_end(&mut buffer).unwrap();
writer.start_file(path, options).unwrap();
writer.write_all(&buffer).unwrap();
3333333333333333333333333333333
3333333333333333333333333333333
3333333333333333333333333333333
111111111111111
121111111111111
1211111188811111
叼茂SEObfbikes.com
叼茂SEO.bfbikes.com
看的我热血沸腾啊https://www.jiwenlaw.com/
看的我热血沸腾啊https://www.237fa.com/
想想你的文章写的特别好https://www.ea55.com/
不错不错,我喜欢看 https://www.ea55.com/
可以的
你的文章内容非常精彩,让人回味无穷。http://www.hlykjgs.com
文章的确不错啊https://www.cscnn.com/
文章的确不错啊https://www.cscnn.com/
《奇妙世纪》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/39666.html
你的文章让我学到了很多知识,非常感谢。 http://www.55baobei.com/98WRjJDfDc.html
真棒!
看到你的文章,我仿佛感受到了生活中的美好。 https://www.4006400989.com/qyvideo/42306.html
《咱老张是谁》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/113482.html
《特工008》动作片高清在线免费观看:https://www.jgz518.com/xingkong/95665.html
看到你的文章,我仿佛感受到了生活中的美好。 https://www.4006400989.com/qyvideo/8359.html
你的文章充满了创意,真是让人惊喜。 http://www.55baobei.com/z7nyZ48nCq.html
你的文章让我感受到了快乐,每天都要来看一看。 http://www.55baobei.com/yJ8gPoYzYC.html
《侯门主母本小姐不当了》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/153593.html
《张飞审瓜》动画片高清在线免费观看:https://www.jgz518.com/xingkong/135661.html
《僵尸校园》韩国剧高清在线免费观看:https://www.jgz518.com/xingkong/41215.html
哈哈哈,写的太好了https://www.lawjida.com/
哈哈哈,写的太好了https://www.lawjida.com/
建议补充发展中国家案例,避免视角局限。
文字流畅如丝,语言优美动人,读来令人心旷神怡。
美洲大陆
雨和你的故事
活埋求生
阴宅捉迷藏
梦想无限
搭秋千的人
一息尚存
女英雄飞车夺宝
忘记你的方法
通灵少年
引力弹弓
山狗
乌托邦
食人猫大报复
萨尔沙
城市猎人
a计划
当代奸雄
阴宅捉迷藏
哈泰利
一息尚存
烈焰英雄
狮子王国
古巴音缘
他她他她
忘记你的方法
狄仁杰之天神下凡
宝石血统
水牛之子
我的老板是连环杀手
python教程
夺命狙击3破晓
下一站说爱你
不明影像绝对点击禁止
搭秋千的人
妖猫传
甜蜜夏日
妖猫传
梦想之城