使用递归复制给定目录下的所有文件和文件夹
package two; import java.io.*; public class Test11 { public static String copyToRoot = "D:\\info456"; public static void main(String[] args) { File file = new File(copyToRoot); file.mkdir(); copyFiles(); } public static void copyFiles() { File file = new File("D:\\info123"); String[] list = file.list(); for (String name : list) copy(new File(file, name), name); } //copy()方法传入两个参数,绝对路径和子目录名,子目录名是append的 public static void copy(File f, String d) { File root = new File(copyToRoot); if (f.isDirectory()) { File dd = new File(root,d); dd.mkdir(); for (String sub : f.list()) { File ff = new File(f, "\\" + sub); copy(ff, d + "\\" + sub); } } if (f.isFile()) { File file = new File(root, d); //System.out.println(f.getPath() + "是文件,复制到"+root.getPath()+"\\"+d); try { file.createNewFile(); //System.out.println("----------" + file.getAbsoluteFile()); FileInputStream fis = new FileInputStream(f); FileOutputStream fos = new FileOutputStream(file); if (fis.available() != 0) fos.write(fis.readAllBytes()); fos.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { System.err.println(f.getAbsolutePath()+"复制到"+file.getAbsolutePath()+"出现问题"); } } } }
使用递归删除给定目录下的所有文件和文件夹
package two; import java.io.File; public class Test12 { public static void main(String[] args) { deleteFiles(); // Test11.copyToRoot = "D:/del123"; // Test11.copyFiles(); } public static void deleteFiles() { File file = new File("D:/del123"); String[] list = file.list(); for (String name : list) delete(new File(file,name)); file.delete(); } public static void delete(File f) { if(f.isDirectory()){ for(String sub:f.list()){ delete(new File(f,sub)); } f.delete(); } if(f.isFile()){ // System.out.println(f.getAbsolutePath()+"是文件"); f.delete(); } } }