• java压缩指定目录下的所有文件和文件夹的代码


    将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助。

    String sourceDir="E: est";
    int parentDirectoryLen=sourceDir.lastIndexOf(File.separator)+1;
    File[] copyfoldersList = new File(sourceDir).listFiles();
    FileOutputStream fos = new FileOutputStream("E: est.zip");
    ZipOutputStream zipOut = new ZipOutputStream(fos);
    for (int k = 0; k < copyfoldersList.length; k++) {
    if (copyfoldersList[k].isDirectory()) {
    LinkedList<String> copysourcepath = new LinkedList<String>(Arrays.asList(copyfoldersList[k].getAbsolutePath()));
    while (copysourcepath.size() > 0) {
    File folders = new File(copysourcepath.peek());
    String[] file = folders.list();
    for (int i = 0; i < file.length; i++) {
    File ff = new File(copysourcepath.peek(), file[i]);
    if (ff.isFile()) {
    FileInputStream fis =null;
    try {
    fis = new FileInputStream(ff);
    ZipEntry entry = new ZipEntry(ff.getAbsoluteFile().substring(parentDirectoryLen));
    zipOut.putNextEntry(entry);
    int nNumber;
    byte[] buffer = new byte[Long.MIN_VALUE];
    while ((nNumber = fis.read(buffer)) != -1)
    zipOut.write(buffer, 0, nNumber);
    } catch (IOException e) {
    e.printStackTrace();
    zipOut.close();
    fos.close();
    }finally{
    try {
    fis.close();
    } catch (IOException e) {}
    }
    } else if (ff.isDirectory()) {
    for (File f : temp.listFiles()) {
    if (f.isDirectory())
    copysourcepath.add(f.getPath());
    else if (f.isFile()) {
    FileInputStream fis =null;
    try {
    fis = new FileInputStream(f);
    ZipEntry entry = new ZipEntry(f.getAbsoluteFile().substring(parentDirectoryLen));
    zipOut.putNextEntry(entry);
    int nNumber;
    byte[] buffer = new byte[Long.MIN_VALUE];
    while ((nNumber = fis.read(buffer)) != -1)
    zipOut.write(buffer, 0, nNumber);
    } catch (IOException e) {
    e.printStackTrace();
    zipOut.close();
    fos.close();
    }finally{
    try {
    fis.close();
    } catch (IOException e) {}
    }
    }
    }
    }
    }
    copysourcepath.removeFirst();
    }
    }
    }
    try {
    zipOut.flush();
    } catch (IOException e) {
    e.printStackTrace();
    }finally{
    try {
    zipOut.close();
    fos.close();
    } catch (IOException e) {}
    }





  • 相关阅读:
    makefile文件编写
    soem函数库的编译
    加秘钥的SSH
    ssh传文件
    ssh1
    安装paramiko的方法
    Ftp客户端(上传文件)
    ftp服务端
    vi编辑器没有颜色的解决办法
    socket服务器
  • 原文地址:https://www.cnblogs.com/51jiaoshou/p/10665621.html
Copyright © 2020-2023  润新知