news 2026/6/10 3:06:27

文件多级解压

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
文件多级解压

文章目录

    • 概要
    • 整体架构流程
    • 技术名词解释
    • 技术细节
    • 小结

基本解压

基础解压,仅实现将输入压缩包解压到指定文件夹下

代码如下:

package weaver.formmode.webservices; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; // 根据传入的压缩包实现解压缩到指定位置,当含有多个压缩包要递归解压,包含文件夹要把文件夹删除,解压结果仅保持一级结构 public class ExtractDemo { // Extract the files from the archive. /** 默认 4 KB 缓冲 */ private static final int BUFFER = 4096; /** * 解压 ZIP 到指定目录 * @param zipFilePath 压缩包绝对路径 * @param destDirPath 目标目录(若不存在则自动创建) * @throws IOException 解压失败时抛出 */ public static void unzip(String zipFilePath, String destDirPath) throws IOException { unzip(zipFilePath, destDirPath, null); } /** * 带进度回调的解压 * @param zipFilePath 压缩包绝对路径 * @param destDirPath 目标目录(若不存在则自动创建) * @param callback 进度回调(可为 null) * @throws IOException 解压失败时抛出 */ public static void unzip(String zipFilePath, String destDirPath, ProgressCallback callback) throws IOException { File destDir = new File(destDirPath); if (!destDir.exists()) destDir.mkdirs(); try (ZipInputStream zis = new ZipInputStream( new BufferedInputStream(new FileInputStream(zipFilePath)), StandardCharsets.UTF_8)) { ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { String entryName = entry.getName(); File outFile = new File(destDir, entryName); // 防止 zip 炸弹(../ 跳出目标目录) if (!outFile.getCanonicalPath().startsWith(destDir.getCanonicalPath() + File.separator)) { throw new IOException("非法路径: " + entryName); } if (entry.isDirectory()) { outFile.mkdirs(); } else { outFile.getParentFile().mkdirs(); try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outFile))) { byte[] buffer = new byte[BUFFER]; int len; while ((len = zis.read(buffer)) != -1) { bos.write(buffer, 0, len); } } } zis.closeEntry(); if (callback != null) callback.onEntry(entryName, outFile.length()); } } } /** 进度回调接口 */ @FunctionalInterface public interface ProgressCallback { void onEntry(String entryName, long bytesWritten); } public static void main(String[] args) throws Exception { String zip = "D:\\DATA\\DS.zip"; String dir = "D:\\DATA\\duckcp-main"; unzip(zip, dir, (name, size) -> System.out.println("解压中 -> " + name + " " + size + " B")); } }

整体架构流程

提示:这里可以添加技术整体架构

例如:
在语言模型中,编码器和解码器都是由一个个的 Transformer 组件拼接在一起形成的。

技术名词解释

提示:这里可以添加技术名词解释

例如:

  • Bert
  • GPT 初代
  • GPT-2
  • GPT-3
  • ChatGPT

技术细节

提示:这里可以添加技术细节

例如:

  • API
  • 支持模型类型

小结

提示:这里可以添加总结

例如:

提供先进的推理,复杂的指令,更多的创造力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 9:26:53

UE5实时3D高斯渲染技术深度解析与实践指南

UE5实时3D高斯渲染技术深度解析与实践指南 【免费下载链接】XV3DGS-UEPlugin 项目地址: https://gitcode.com/gh_mirrors/xv/XV3DGS-UEPlugin 问题诊断:识别3D渲染中的常见症状 在UE5开发过程中,我们经常会遇到各种3D渲染问题。让我们一起诊断这…

作者头像 李华
网站建设 2026/6/10 9:22:16

Windows流媒体快速搭建:Nginx-RTMP-Win32三步构建专业直播服务

Windows流媒体快速搭建:Nginx-RTMP-Win32三步构建专业直播服务 【免费下载链接】nginx-rtmp-win32 Nginx-rtmp-module Windows builds. 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-win32 还在为Windows平台流媒体部署的复杂性而头疼吗&#x…

作者头像 李华
网站建设 2026/6/10 9:22:10

IDM使用难题终极解决方案:试用延续技术完整指南

还在为IDM使用期限而苦恼吗?作为一名长期使用IDM的老用户,我深知使用问题的困扰。经过多次实践,终于找到了最可靠的IDM使用解决方案——试用延续技术,今天就和大家分享这个简单有效的经验。🎯 【免费下载链接】IDM-Act…

作者头像 李华
网站建设 2026/6/10 9:23:56

SGMICRO圣邦微 SGM2051-ADJXG/TR WLCSP-15 线性稳压器(LDO)

特性输入电源电压范围:0.5V至5.5V偏置电源电压范围:2.5V至5.5V固定输出电压:0.75V、0.8V、0.85V、1.0V、1.05V、1.1V、1.15V、1.2V、1.8V、2.8V、3.0V和3.3V;可调输出电压范围:0.5V至3.3V输出电压精度:25C时…

作者头像 李华
网站建设 2026/6/10 9:22:15

Windows界面美化新选择:DWMBlurGlass 3步配置完全指南

Windows界面美化新选择:DWMBlurGlass 3步配置完全指南 【免费下载链接】DWMBlurGlass Add custom effect to global system title bar, support win10 and win11. 项目地址: https://gitcode.com/gh_mirrors/dw/DWMBlurGlass 还在为Windows系统单调的界面设计…

作者头像 李华
网站建设 2026/6/9 14:04:22

从零搭建稳定远程调试环境:Open-AutoGLM配置全解析

第一章:Open-AutoGLM 远程调试环境的核心价值在现代AI开发实践中,远程调试环境已成为提升研发效率与协作质量的关键基础设施。Open-AutoGLM 提供的远程调试能力,不仅支持开发者在分布式环境下实时监控模型推理流程,还实现了对大语…

作者头像 李华