当前位置: 首页 > news >正文

iH5做网站成都疫情最新消息

iH5做网站,成都疫情最新消息,asp动态网站开发,天津建设工程协会网站本文提供了一种对文件夹进行zip压缩并加密的方法。 添加依赖 cargo add anyhow cargo add walkdir cargo add zip cargo add zip-extensions计算文件夹的大小 目的是对需要压缩的文件夹的大小做一个限制。当然如果资源足够的话,可以去掉此限制。 let mut total_s…

本文提供了一种对文件夹进行zip压缩并加密的方法。

添加依赖

cargo add anyhow
cargo add walkdir
cargo add zip
cargo add zip-extensions

计算文件夹的大小

目的是对需要压缩的文件夹的大小做一个限制。当然如果资源足够的话,可以去掉此限制。

    let mut total_size: u64 = 0;// 计算文件夹的大小for metadata in WalkDir::new(source_dir).min_depth(1).max_depth(max_depth).into_iter()// 忽略正在运行的进程或无权访问的目录.filter_map(|entry| entry.ok()).filter_map(|entry| entry.metadata().ok())// 只计算文件.filter(|metadata| metadata.is_file()){total_size += metadata.len();}

压缩并加密文件夹

use anyhow::Result;
use std::io::Write;
use std::{fs, path::Path};
use walkdir::WalkDir;
use zip::unstable::write::FileOptionsExt;
use zip::{write::FileOptions, CompressionMethod, ZipWriter};
use zip_extensions::zip_create_from_directory_with_options;/// 使用zip格式压缩文件夹,并返回原文件夹的大小
pub fn zip_directory(key: Vec<u8>,source_dir: &Path,archive_file: &Path,max_depth: usize,
) -> Result<u64> {let mut total_size: u64 = 0;// 计算文件夹的大小for metadata in WalkDir::new(source_dir).min_depth(1).max_depth(max_depth).into_iter()// 忽略正在运行的进程或无权访问的目录.filter_map(|entry| entry.ok()).filter_map(|entry| entry.metadata().ok())// 只计算文件.filter(|metadata| metadata.is_file()){total_size += metadata.len();// todo 可以在此对文件夹大小上限进行判断,如果超出上限,则// return Ok(total_size);}// 压缩加密文件夹let options = FileOptions::default().compression_method(CompressionMethod::DEFLATE).with_deprecated_encryption(&key);zip_create_from_directory_with_options(&archive_file.to_path_buf(),&source_dir.to_path_buf(),options,).unwrap();Ok(total_size)
}

单元测试

use std::env;#[test]
fn test_zip_directory() {let src_file_path = env::current_dir().unwrap().join("tests");let dst_file_path = env::current_dir().unwrap().join("tests.zip");let key = get_random_key16();let _ = zip_directory(key.to_vec(), &src_file_path, &dst_file_path, 10);
}
http://www.yidumall.com/news/93146.html

相关文章:

  • 商城网站 备案苏州网站优化公司
  • 正规的培训行业网站制作网络营销岗位招聘信息
  • 网上怎么做网站百度品牌广告多少钱
  • 团队拓展方案沈阳优化网站公司
  • 建设一个网站需要哪些人员参与b站免费版入口
  • 衢州 网站建设建站模板哪个好
  • 非物质文化遗产网站怎么做今晚比分足球预测
  • 网站开发成本估计seo搜索排名优化公司
  • 门户网站设计技巧广州seo网络优化公司
  • 制作html5网站一个产品的宣传和推广方案
  • 淘客网站怎么建立产品推广方式及推广计划
  • 静态网站开发与实施的论文seo对网店推广的作用有哪些
  • 昆明网站建设是什么拓客app下载
  • 怎么自己建网站必应搜索引擎网址
  • 好的培训网站模板百度搜索引擎收录
  • 做电信网站运营希爱力双效片的作用与功效
  • 南宁做网站的公司合肥百度关键词优化
  • 西安建设集团网站江苏网站seo营销模板
  • 群晖 wordpress 设置网站外部优化的4大重点
  • 泰安做网站公司哪家好百度首页排名代发
  • 网站做了301重定向域名会自动跳转吗谷歌sem和seo区别
  • 郑州站长春网站制作推广
  • 北京建网站费用互联网推广是什么意思
  • 外贸网站如何做推广公司企业网站制作
  • dw做网站模版常用seo站长工具
  • 我的网站模板好用的磁力搜索引擎
  • 如何做域名网站搜索引擎内部优化
  • 大连三丰建设集团公司网站巨量算数关键词查询
  • 网站空间和数据库2021年10月新闻摘抄
  • 个人网站备案 网站名称永久免费开网店app