java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹
package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录入一个文件夹路径,删除该路径下的所有文件文件夹,包括自己。 要求:文件夹中包含有子文件夹*/ public class TheLat { public static void main(String[] args) { File dir = inputDir(); delete(dir); } private static void delete(File dir) { for(File file:dir.listFiles()) { if(file.isDirectory()) { delete(file); }else { file.delete(); } } dir.delete(); System.out.println("整个文件夹及其中文件都被删除"); } private static File inputDir() { System.out.println("请录入一个目录"); Scanner scan = new Scanner(System.in); String str = scan.nextLine(); File file = new File(str); if (!file.exists()) { throw new RuntimeException("垓目录不存在!"); } if (!file.isDirectory()) { throw new RuntimeException("输入的不是一个目录"); } return file; } }
又写了一遍
package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录入一个文件夹路径,删除该路径下的所有文件夹。 要求:文件夹中包含有子文件夹*/ public class TheLat { public static void main(String[] args) { File dir = inputDir(); delete(dir); } private static void delete(File dir) { for(File file:dir.listFiles()) { if(file.isDirectory()) { delete(file); }else { boolean success=file.delete(); if(success) { System.out.println("文件删除成功."); }else { System.out.println("正在使用,删除失败"); } } } boolean success=dir.delete(); if(success) { System.out.println("目录中的文件夹及其中文件都被删除"); }else { System.out.println("文件夹正在使用,删除失败"); } } private static File inputDir() { System.out.println("请录入一个目录"); Scanner scan = new Scanner(System.in); String str = scan.nextLine(); File file = new File(str); if (!file.exists()) { throw new RuntimeException("垓目录不存在!"); } if (!file.isDirectory()) { throw new RuntimeException("输入的不是一个目录"); } return file; } }
找不同
====================================================================================================
package com.swift.test; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; /*从控制台获取输入的文件目录然后将该目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数. 提示:如果有相同的名称的文件,如果两个Test01.java,则拷贝到目标文件夹时只能有一个Test01.java, 另一个Test01.java要修改为另一个名称:该名称可随机生成,只要不重复即可.*/ public class CopyJavaFileCount { private static int sum=0; public static void main(String[] args) throws IOException { Scanner scan=new Scanner(System.in); String path = scan.nextLine(); File src=new File(path); File dest=new File("d:/asdf"); if(!dest.exists()) { dest.mkdirs(); } copy(src,dest); System.out.println(".java文件的个数是"+sum); } private static void copy(File src, File dest) throws IOException { File[] files = src.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if(pathname.isDirectory()) { try { copy(pathname,dest); } catch (IOException e) { e.printStackTrace(); } } if(pathname.getName().toLowerCase().endsWith(".java")) { return true; } return false; } }); for(File file:files) { String name = file.getName(); File destFile=new File(dest,name); copyFile(file,destFile); System.out.println(file); } sum=sum+files.length; } public static void copyFile(File file1,File file2) throws IOException{ FileInputStream fis=new FileInputStream(file1); // 2.创建字节输出流对象关联文件路径:D盘下的a.png FileOutputStream fos=new FileOutputStream(file2); // 3.定义一个字节数组,用来存放读取到文件字节数 byte[] buf=new byte[128]; int len; // 4.使用循环不断从字节输入流读取一个字节数组,每读取一个字节数组就利用输出流写出一个字节数组。 while((len=fis.read(buf))!=-1) { fos.write(buf,0,len); } System.out.println("已经copy成功"); // 5.关闭流,释放资源 fis.close(); fos.close(); } }
Never waste time any more, Never old man be a yong man