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

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Tiqu {

    public static void main(String[] args) throws IOException {
         String uploadFilePath = "C:/java_eclipsnew/Tiqu_file/temp";
            Map<String,String> fileNameMap = new HashMap<String,String>();
            listfile(new File(uploadFilePath),fileNameMap);//File既可以代表一个文件也可以代表一个目录
            display(fileNameMap);
    }

    public static void listfile(File file,Map<String,String> map){
    //如果file代表的不是一个文件,而是一个目录
        if(!file.isFile()){
            //列出该目录下的所有文件和目录
            File files[] = file.listFiles();
            //遍历files[]数组
            for(File f : files){
                //递归
                listfile(f,map);
            }
        }else{
            String realName = file.getName();
            map.put(file.toString(), realName);
        }
    }
    public static void display(Map<String,String> map) throws IOException{
        Iterator it2=map.keySet().iterator();

        while(it2.hasNext()){
            Object key = it2.next();
            String value = map.get(key);
            File f=new File(key.toString());
            if(!f.isDirectory()){
                String s="C:/java_eclipsnew/Tiqu_file/temp/"+value;
                copyFile(key.toString(),s);
            }
        }
    }
     public static void copyFile(String src,String dest) throws IOException{
         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]);        
         }
         in.close();
         out.close();
     }
    
}

 以文件夹命名递增

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Tiqu {

    public static void main(String[] args) throws IOException {
         String uploadFilePath = "C:/java_eclipsnew/Tiqu_file/temp";
            Map<String,String> fileNameMap = new HashMap<String,String>();
            listfile(new File(uploadFilePath),fileNameMap);//File既可以代表一个文件也可以代表一个目录
            display(fileNameMap);
    }

    public static void listfile(File file,Map<String,String> map){
    //如果file代表的不是一个文件,而是一个目录
        if(!file.isFile()){
            //列出该目录下的所有文件和目录
            File files[] = file.listFiles();
            //遍历files[]数组
            for(File f : files){
                //递归
                listfile(f,map);
            }
        }else{
            String realName = file.getName();
            map.put(file.toString(), realName);
        }
    }
    public static void display(Map<String,String> map) throws IOException{
        Iterator it2=map.keySet().iterator();
        int i=1;
        while(it2.hasNext()){
            Object key = it2.next();
            
            File f=new File(key.toString());
            String value = f.getParent().substring(f.getParent().lastIndexOf("\")+1)+".jpg";

            if(!f.isDirectory()){
                String s="C:/java_eclipsnew/Tiqu_file/temp/"+i+value;
                //System.out.println(s);
                i++;
                copyFile(key.toString(),s);
            }
        }
    }
     public static void copyFile(String src,String dest) throws IOException{
         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]);        
         }
         in.close();
         out.close();
     }
    
}
原文地址:https://www.cnblogs.com/shortail/p/5126373.html