1.首先实现java多文件压缩

package main;

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

public class Test
{
    public static void main(String[] args) throws Exception
    {
        byte[] buffer = new byte[1024];

        // 生成的ZIP文件名为Demo.zip
        String strZipName = "C:/Demo.zip";//生成文件的目录及命令
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName));
        // 需要同时下载的两个文件result.txt ,source.txt
        File[] file1 = { new File("C:/2.txt"), new File("C:/1.exe"), new File("C:/3.xls")};
        for (int i = 0; i < file1.length; i++)
        {
            FileInputStream fis = new FileInputStream(file1[i]);
            out.putNextEntry(new ZipEntry(file1[i].getName()));
            int len;
            // 读入需要下载的文件的内容,打包到zip文件
            while ((len = fis.read(buffer)) > 0)
            {
                out.write(buffer, 0, len);
            }
            out.closeEntry();
            fis.close();
        }
        out.close();
        System.out.println("生成Demo.zip成功");
    }
}

2.看完说面不要问我怎么没看见下载的代码,因为我的上篇文章java通过文件流实现下载文件已经介绍了这个下载的功能,不信你看去,我没骗你吧java实现文件自动打包成zip并下载的代码,只要把刚才压缩的文件的路径放到那个方法里面就可以下载了。

3.既然下载完了,我们刚才打的压缩包就没有用了,我们可以现在就删除或者做个定时器定时删除就行了,下面就看看java是怎么实现删除文件的吧!(不要膜拜我,请叫我雷锋!)

package com.web.tool;

import java.io.File;
// @author xuxile  
//2012-07-04  
// 删除文件或目录/  
public class DeleteFileUtil {    
     //   
    public static boolean delete(String fileName){    
        File file = new File(fileName);    
        if(!file.exists()){    
            System.out.println("删除文件失败:"+fileName+"文件不存在");    
            return false;    
        }else{    
            if(file.isFile()){    
                    
                return deleteFile(fileName);    
            }else{    
                return deleteDirectory(fileName);    
              
          
      
        
     //   
    public static boolean deleteFile(String fileName){     //2.删除单个文件
        File file = new File(fileName);    
        if(file.isFile() && file.exists()){    
            file.delete();    
            System.out.println("删除单个文件"+fileName+"成功!");    
            return true;    
        }else{    
            System.out.println("删除单个文件"+fileName+"失败!");    
            return false;    
          
      
        
     //   
    public static boolean deleteDirectory(String dir){    
        //如果dir不以文件分隔符结尾,自动添加文件分隔符    
        if(!dir.endsWith(File.separator)){    
            dir = dir+File.separator;    
          
        File dirFile = new File(dir);    
        //如果dir对应的文件不存在,或者不是一个目录,则退出    
        if(!dirFile.exists() || !dirFile.isDirectory()){    
            System.out.println("删除目录失败"+dir+"目录不存在!");    
            return false;    
          
        boolean flag = true;    
        //删除文件夹下的所有文件(包括子目录)    
        File[] files = dirFile.listFiles();    
        for(int i=0;i
            //删除子文件    
            if(files[i].isFile()){    
                flag = deleteFile(files[i].getAbsolutePath());    
                if(!flag){    
                    break;    
                  
              
            //删除子目录    
            else{    
                flag = deleteDirectory(files[i].getAbsolutePath());    
                if(!flag){    
                    break;    
                  
              
          
            
        if(!flag){    
            System.out.println("删除目录失败");    
            return false;    
          
            
        //删除当前目录    
        if(dirFile.delete()){    
            System.out.println("删除目录"+dir+"成功!");    
            return true;    
        }else{    
            System.out.println("删除目录"+dir+"失败!");    
            return false;    
          
      
        
    public static void main(String[] args) {    
        //String fileName = "g:/temp/xwz.txt";    
        //DeleteFileUtil.deleteFile(fileName);    
        String fileDir = "G:/temp/temp0/temp1";//可以是文件路径也可以是文件夹路径    
        //DeleteFileUtil.deleteDirectory(fileDir);    
        DeleteFileUtil.delete(fileDir);    
            
      
}

4.好了,现在结束了,总结一下:我没有骗你你吧至少给了你思路“先压缩,再下载,最后删除”,还有给了你全部的代码,英雄不留名,我叫活雷锋!

 

参考自:http://www.cxyclub.cn/n/26800/

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐