0 0

java 按照文件目录生成压缩文件并下载5

我现在要做一个下载zip文件的功能,但我不知道如何去保持在Server的文件目录。
例如我有一张图片:a.jpg它在服务器上的目录是:/images/yule/me/a.jpg
在我生成zip文件的时候,怎么才能保持这个目录呢?下载回来的文件,解压后是有一个images文件夹,然后是yule文件夹,然后再是me文件夹,然后才是a.jpg
分数不多,请多多指教,困扰了好几天,谢谢!
2012年9月06日 11:26

3个答案 按时间排序 按投票排序

0 0

采纳的答案

顺便提醒一下:JPG格式已经是压缩格式了,再压缩没什么太大意义。

		ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("/opt/download/test.zip"));
		ZipEntry entry = new ZipEntry("images/yule/me/a.jpg");//在ZIP文件中的目录结构,最前面不要有斜杠。
		zos.putNextEntry(entry);
		InputStream is = new FileInputStream("/images/yule/me/a.jpg");
		int len = 0;
		while ((len = is.read()) != -1)
			zos.write(len);
		is.close();
		zos.close();

2012年9月06日 12:20
0 0

刚帮你写了一个demo

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class TestZip {

	private void zip(String souceFileName, String destFileName) {
		File file = new File(souceFileName);
		try {
			zip(file, destFileName);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void zip(File souceFile, String destFileName) throws IOException {
		FileOutputStream fileOut = null;
		try {
			fileOut = new FileOutputStream(destFileName);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		ZipOutputStream out = new ZipOutputStream(fileOut);
		zip(souceFile, out, "");
		out.close();
	}

	private void zip(File souceFile, ZipOutputStream out, String base)
			throws IOException {

		if (souceFile.isDirectory()) {
			File[] files = souceFile.listFiles();
			out.putNextEntry(new ZipEntry(base + "/"));
			base = base.length() == 0 ? "" : base + "/";
			for (File file : files) {
				zip(file, out, base + file.getName());
			}
		} else {
			if (base.length() > 0) {
				out.putNextEntry(new ZipEntry(base));
			} else {
				out.putNextEntry(new ZipEntry(souceFile.getName()));
			}
			System.out.println("filepath=" + souceFile.getPath());
			FileInputStream in = new FileInputStream(souceFile);

			int b;
			byte[] by = new byte[1024];
			while ((b = in.read(by)) != -1) {
				out.write(by, 0, b);
			}
			in.close();
		}
	}

	/**
	 * Test
	 */
	public static void main(String[] args) {
		TestZip z = new TestZip();
		z.zip("D:\\image11", "D:/Data1.zip");
	}
}


//其中
z.zip("D:\\image11", "D:/Data1.zip");
第一个参数是标识要生成目录的文件夹这个会遍历下面所有的文件夹中的文件
第二个参数 生成的zip的文件位置

2012年9月06日 13:17
0 0

支持文件 文件夹的递归
http://download.csdn.net/detail/xjzdr/3750304

http://my.oschina.net/woqi/blog/11134
压缩与解压缩的工具类,可以进行多层文件夹的递归压缩~~

2012年9月06日 12:25

相关推荐

    java后台批量下载文件并压缩成zip下载的方法

    Java后台批量下载文件并压缩成zip下载的方法是指在Java后台中批量下载文件,并将其压缩成zip文件下载到本地桌面。该方法具有重要的参考价值,感兴趣的小伙伴们可以参考以下内容。 java后台批量下载文件 在Java后台...

    java导出csv文件并压缩(含下载提示功能)

    通过以上步骤,你已经实现了在Java中导出CSV文件,然后将其压缩成ZIP格式,并提供了一个Web接口供用户下载。确保正确配置你的服务器和文件路径,以适应实际项目的需求。同时,不要忘记处理可能出现的异常,以确保...

    java 下载文件 压缩且删除源文件(支持文件夹与文件)

    1、压缩文件或者目录(只是压缩不删除):zipFileOrDirectory 2、程序自动判断如果是文件那么就是源文件下载,如果是文件夹那么就先 压缩然后再下载,然后再删除:downFileDel 3、不管什么文件都是最后以zip下载:...

    java 生成zip压缩文件

    在Java编程语言中,生成ZIP压缩文件是一项常见的任务,它涉及到文件操作和数据流的处理。这个过程可以用于归档多个文件或者整个目录结构,便于存储或传输。下面我们将详细探讨如何使用Java来生成ZIP压缩文件,以及...

    java生成PDF 然后加密压缩文件

    前段时间由于项目需要,使用java生成PDF文件,然后将文件压缩成ZIP格式,同时对压缩文件进行加密,先将代码及jar包上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...

    java压缩文件生成带密码的zip包,解压带密码的zip包的工具类

    * @param isCreateDir 是否在压缩文件里创建目录,仅在压缩文件为目录时有效. * 如果为false,将直接压缩目录下文件到压缩文件. * @param passwd 压缩使用的密码 * @return 最终的压缩文件存放的绝对路径,...

    java压缩文件以及文件夹

    总之,`ZipCompressor.java`是实现文件和文件夹压缩的关键类,它利用了Java标准库提供的`ZipOutputStream`和`ZipEntry`,通过一系列的步骤,将原始文件和目录打包成ZIP格式的压缩文件。熟悉这些概念和API,开发者就...

    java生成压缩文件

    java生成压缩文件 java如何压缩文件

    java生成PDF,java加密压缩文件

    前段时间由于项目需要,使用java生成PDF文件,然后将文件压缩成ZIP格式,同时对压缩文件进行加密,先将代码及jar包上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...

    Java多个文件根据URL下载后打包zip导出.zip

    在Java编程中,有时我们需要从网络上下载多个文件并将其打包为一个压缩文件,例如ZIP格式,以便于存储或分发。这个过程涉及到文件I/O操作、网络请求以及压缩算法的使用。以下是对这个场景的详细说明: 1. **网络...

    java代码实现单个或多个文件压缩成rar包

    java代码实现单个或多个文件压缩成rar包,本地要安装winRar插件。

    Java实现批量下载并压缩文件.pptx.pptx

    Java 实现批量下载并压缩文件是一项常见的任务,尤其在处理大量数据存储时。在这个过程中,主要涉及以下几个关键知识点: 1. **文件下载**:在Java中,文件下载通常基于网络I/O流,通过发送HTTP请求获取远程服务器...

    Java实现将多目录多层级文件打成ZIP包,以及解压ZIP包

    这个库简化了在Java中处理压缩文件的过程,提供了丰富的API供开发者使用。 首先,我们来看`FileUtils.java`中的主要方法。通常,这个类会包含两个核心功能:`zipFiles()`用于创建ZIP包,`unzipFile()`用于解压ZIP包...

    CSV文件生成及Z压缩成zip下载

    分步生成csv,获取数据第一行生成文件标题,同时生成第一行数据,返回标题名称。 将多csv文件压缩成zip,之后删除原csv文件

    java 直接压缩文件或文件目录

    在Java编程语言中,压缩文件或文件目录是一项常见的任务,主要使用了Java的`java.util.zip`包中的类。这个包提供了对ZIP和GZIP格式的支持。本文将深入讲解如何利用Java来直接压缩文件或文件目录,以及如何进行相关的...

    使用Java向服务器上传文件压缩包并实现解压缩

    总的来说,Java结合JSch库可以方便地实现与SFTP服务器的交互,包括上传文件压缩包、解压缩、创建目录等操作。这些功能在分布式系统、云存储和自动化运维场景中都十分常见。通过熟练掌握这些技能,开发人员能够构建...

    Excel文件生成、压缩和下载

    实现功能有: 1.读取数据库生成excel; 主要文件:MakeExcel.java 2.对目录进行打包压缩; 主要文件:Myzip.java 3.下载文件,对文件下载后...压缩文件在MakeExcel.java中有调用 所有方法都已封装,详细功能请看代码

    java+pdf生成.zip

    Java生成PDF文件是一种常见的技术需求,特别是在开发报告生成、电子发票、文档自动化等领域。PDF(Portable Document Format)格式因其跨平台、保持原始样式的特点而被广泛使用。在Java环境中,有多个库可以帮助...

    FTP上传文件压缩文件生成CSV文件

    在给定的场景中,我们需要实现一个功能,即通过Java编程语言生成压缩文件,并将其上传到FTP文件管理服务器,同时涉及到CSV(Comma Separated Values)文件的处理。以下是对各个文件及其所涉及知识点的详细解释: 1....

    java调用winrar生成压缩文件路径有空格问题

    ### Java调用WinRAR生成压缩文件路径有空格问题解决方案 在进行文件处理时,我们经常需要对文件进行压缩操作以便于传输或者节省存储空间。Java作为一种常用的开发语言,在进行此类操作时通常会通过调用外部命令的...

Global site tag (gtag.js) - Google Analytics