小工具
⚪递归遍历盘文件夹
⚪计算文件数量
- 或取到所有的盘符
File[] roots = File.listRoots();
File d = roots[0];//找到D盘目录
- 获取到当前目录下的子目录或文件
File[] files = file.listFiles(); //如果是文件 没有子结构 将会返回null
C:$Recycle.Bin 最开始的是回收文件
package com.gec.file;
import java.io.File;
import java.util.Arrays;
import org.junit.Test;
public class TestFile {
/*
* 抛出异常 ,当前这个方法抛出异常给上级,谁调用该方法,谁处理该异常 处理异常使用try{}catch(Exception e){}
*/
@Test
public void getFile() throws Exception {
//1.创建文件对象
//File file = new File("D:\\IO\\File");
//File中的separator静态常量,是一个自适应的斜线
File file = new File("D:"+File.separator+"IO"+File.separator+"File");
//2.判断该目录或文件是否存在
if(!file.exists()) {
//不存在则创建目录
file.mkdirs(); //创建整个目录,没有则创建,有就不创建
//file.createNewFile(); //创建文件一定在已有目录下创建文件
}
//在上级目录下创建一个新的文件
File newFile = new File(file, "test1.txt");
boolean flag = newFile.createNewFile();
if(flag) {
System.out.println("文件已创建成功!");
}else
System.out.println("文件创建失败....");
}
@Test
public void deleteFile() {
//创建文件对象,获取到文件夹
File file = new File("D:"+File.separator+"IO"+File.separator+"File","test.txt");
System.out.println(file.getName()); //文件或目录的名称
System.out.println(file.getPath()); //获取到相对路径
System.out.println(file.getAbsolutePath()); //获取到绝对路径
//删除指定文件或文件目录
if(file.delete())
System.out.println("删除文件成功!");
else
System.out.println("文件不存在,删除文件失败.....");
}
/*
* 查找所有的文件
*/
@Test
public void findFile() {
//或取到所有的盘符
File[] roots = File.listRoots();
System.out.println(Arrays.toString(roots));
//找到D盘目录
File d = roots[0];
//获取到d盘下所有的文件和数量
long num = showFile(d);
System.out.println("D盘中所有文件的数量为:"+num);
}
//查找文件方法
private long showFile(File file) {
long num = 0;
//获取到当前目录下的子目录或文件
File[] files = file.listFiles(); //如果是文件 没有子结构 将会返回null
//判断该数组是否为null
if(files!=null) {
//循环所有目录
for (File file2 : files) {
//判断该file2是否为目录
if(file2.isDirectory()) {
//自己调用自己,查询当前文件夹的下级文件,如果子文件中还有文件夹,继续调用,简称递归
num += showFile(file2);
}else {
num++; //如果是文件,就不需要遍历
System.out.println(file2.getParent()+File.separator+file2.getName());
}
}
}
return num;
}
}
删除文件夹
千万要注意
删错了后果自负
带前不带后
-
文件夹里只有文件的情况
-
文件夹还有文价夹的情况