zoukankan      html  css  js  c++  java
  • 导出项目文件到本地指定目录(zip)

    一.导出项目文件到本地指定目录。

     String filepath="";//项目文件路径 ("static/img/123.png")

     InputStream  inputstream  = new  FileInputStream(fileName); 

    String filename="";//文件名称(123.png);

    this.savePic(inputstream,filename)//调用 savePic方法

    public static void savePic(InputStream inputStream, String fileName) {
    OutputStream os = null;
    try {
      // 1、保存到临时文件
      byte[] bs = new byte[1024];// 1K的数据缓冲
      int len;// 读取到的数据长度
      File gkfile = new File("D:/downFile/img");// 输出的文件流保存到本地文件
      if(!gkfile.exists()){//如果文件夹不存在
      gkfile.mkdir();//创建文件夹
      }else {
      gkfile.delete();
      gkfile.mkdir();
      }
      os = new FileOutputStream(gkfile.getPath() + File.separator + fileName,true);
      // 开始读取
      while ((len = inputStream.read(bs)) != -1) {
      os.write(bs, 0, len);
      }
      } catch (IOException e) {
      e.printStackTrace();
      } catch (Exception e) {
      e.printStackTrace();
      } finally {
      // 完毕,关闭所有链接
      try {
      os.close();
      inputStream.close();
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      }

    二.将本地指定文件夹压缩成.zip文件

    List<File> fileList1 = new ArrayList<File>();
    fileList1.add(new File("D:/downFile"));//填写需要压缩的文件夹路径
    FileOutputStream fos3 = new FileOutputStream(new File("D:/downFile.zip"));//填写压缩到文件夹路径以及文件夹名称
    this.toZip(fileList1, fos3,true);//调用本地toZip方法

      

    //1.srcFiles 需要压缩的 文件夹路径 列表2.out  压缩文件输出流3.KeepDirStructure是否保留原来的目录结构,true:保留目录结构;false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)

    public static String toZip(List<File> srcFiles, OutputStream out, boolean KeepDirStructure)
    throws RuntimeException{
    String result = "false";
    long start = System.currentTimeMillis();
    ZipOutputStream zos = null ;
    try {
    zos = new ZipOutputStream(out);
    for (File srcFile : srcFiles) {
    compress(srcFile,zos,srcFile.getName(),KeepDirStructure);
    }
    result = "true";
    long end = System.currentTimeMillis();
    System.out.println("1.1压缩完成,耗时:" + (end - start) +" ms");
    } catch (Exception e) {
    throw new RuntimeException("zip error from ZipUtils",e);
    }finally{
    if(zos != null){
    try {
    zos.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    return result;
    }

    三.删除本地文件夹以及子文件夹方法

    1.File file =new File(" D:/downFile")

    public static void dripFile(File file){
    if (file.isFile()) {
    file.delete();
    }
    else {
    File[] file1 = file.listFiles();
    for (int i = 0; i < file1.length; i++) {
    dripFile(file1[i].getAbsolutePath());
    }
    }
    file.delete();
    }

    2.String drp="D:/downFile";

    public static void dripFile(String drp){
    File file =new File(drp);
    if (file.isFile()) {
    file.delete();
    }
    else {
    File[] file1 = file.listFiles();
    for (int i = 0; i < file1.length; i++) {
    dripFile(file1[i].getAbsolutePath());
    }
    }
    file.delete();
    }

  • 相关阅读:
    x01.os.17: 换心术
    x01.os.16: 添加功能
    x01.os.15: 看上去很美
    JVM 栈帧之操作数栈与局部变量表
    IDEA字节码学习查看神器jclasslib bytecode viewer介绍
    java上下文Context类
    UML ——区分类图中的几种关系.md
    UML ——六种依赖关系.md
    JDK动态代理[1]----代理模式实现方式的概要介绍
    java方法句柄-----5.Method Handles in Java
  • 原文地址:https://www.cnblogs.com/liuhaotian548/p/13030815.html
Copyright © 2011-2022 走看看