• java 提取目录下所有子目录的文件到指定位置


    package folder;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;

    public class folder {
    /**
    * java 提取目录下所有子目录的文件到指定位置
    * @throws IOException
    *
    * */
    public static void main(String[] args) throws IOException {
    String uploadFilePath="D:\AFile";
    Map<String,String> fileNameMap=new HashMap<String, String>();
    display(fileNameMap);
    listfile(new File(uploadFilePath),fileNameMap);


    }

    private static void display(Map<String, String> fileNameMap) throws IOException {
    // TODO Auto-generated method stub
    Iterator it2=fileNameMap.keySet().iterator();
    while (it2.hasNext()){
    Object key=it2.next();
    String value=fileNameMap.get(key);
    File f=new File(key.toString());
    if(!f.isDirectory()){
    String s="D:\BFile"+value;
    copyFile(key.toString(),s);
    }
    }



    }

    private static void copyFile(String src, String dest) throws IOException {
    // TODO Auto-generated method stub
    FileInputStream in=new FileInputStream(src);
    File file=new File(dest);
    if(!file.exists()){
    file.createNewFile();
    FileOutputStream out=new FileOutputStream(file);
    int c;
    byte buffer[]=new byte[1024];
    while((c=in.read(buffer))!=-1)
    {
    for (int i = 0; i < c; i++) {
    out.write(buffer[i]);
    }
    }

    }

    }

    private static void listfile(File file, Map<String, String> fileNameMap) {
    // TODO Auto-generated method stub
    //如果file代表的不是一个文件,而是一个目录
    if(!file.isFile()){
    //列出该目录下的所有文件和目录
    File files[]=file.listFiles();
    for (File f : files) {
    listfile(f,fileNameMap);
    }
    }
    else{
    String realName=file.getName();
    fileNameMap.put(file.toString(), realName);
    }
    }

    }

    java 搞这个 要写这么多代码。

    Python 搞这些就方便很多。  一句话就可以了,比较方便。

  • 相关阅读:
    vs2013 调用只有dll文件的动态库(一)
    剑指offer 34.二叉树中和为某一值的路径
    JQuery中bind和unbind函数与onclick绑定事件区分
    实现 select中指定option选中触发事件
    页面中的checkbox多选值获取
    页面中href链接的碰撞
    页面中onclick事件引号问题
    页面间传输参数(两种传参方法)
    js的非空校验
    时间控件,选择日期
  • 原文地址:https://www.cnblogs.com/szw-blog/p/5478131.html
Copyright © 2020-2023  润新知