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(); } }