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