import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class FileTest {
private static List<String> FIND_BY_NAME = new ArrayList<>();
public static void main(String[] args) throws IOException {
// 相对路径,默认相对到当前工程下开始寻找文件
// File file = new File("src\\aaa.txt");
// 绝对路径,带盘符的当前系统下的路径
File file = new File("E:\\test");
System.out.println(file.exists()); // 判断文件对象是否存在
System.out.println(file.length()); // 获取当前文件大小
System.out.println(file.getAbsolutePath()); //获取绝对路径字符串
System.out.println(file.getPath()); // 获取当前路径字符串
System.out.println(file.getName()); // 获取文件名称
System.out.println(file.isFile()); // 判断是否为文件
System.out.println(file.isDirectory()); // 判断是否为文件夹
System.out.println(file.lastModified()); // 获取文件最后一次修改的时间毫秒值
String[] fileNames = file.list(); // 获取当前目录的所有一级文件/文件夹的名称
System.out.println(Arrays.toString(fileNames));
/*
1. 若当前文件对象不存在 或 是一个文件 或 是一个需要权限才能进入的文件夹,返回null;
2. 若为空文件夹,返回一个长度为0的数组
3. 若为非空文件夹,将当前目录下所有的一级文件/文件夹的路径放在File数组中返回,包含隐藏内容
*/
File[] files = file.listFiles(); // 获取当前目录所有的一级文件/文件夹对象
System.out.println(Arrays.toString(files));
//搜索文件需带后缀,文件夹则不需要
searchFile(new File("D:/"), "CloudMusic");
System.out.println(FIND_BY_NAME);
// 获取一个文件对象(带后缀名)
File file1 = new File("E:\\test\\newFile.txt");
// 使用createNewFile()创建一个新的空的文件,若该文件已存在则失败返回false
boolean flag = file1.createNewFile();
System.out.println(flag);
// 获取一个文件夹对象(此时aaa文件夹不存在)
File file2 = new File("E:\\test\\aaa");
// 使用mkdir()创建一个新的文件夹,只能创建一级文件夹
boolean flag1 = file2.mkdir();
System.out.println(flag1);
// 获取一个文件夹对象(此时bbb文件夹、ccc文件夹、ddd文件夹都不存在)
File file3 = new File("E:\\test\\bbb\\ccc\\ddd");
// 使用mkdirs()创建多级文件夹
boolean flag2 = file3.mkdirs();
System.out.println(flag2);
// 使用File类的delete方法删除该文件对象表示的文件或空文件夹
// delete方法直接删除不走回收站
System.out.println(file1.delete()); // 文件--------可删除
System.out.println(file2.delete()); // 空文件夹-----可删除
File file4 = new File("E:\\test\\bbb");
System.out.println(file4.delete()); // 非空文件夹----不可直接删除
deleteNotEmptyFile(file4); //自定义方法删除文件夹
}
/**
* 删除文件、空文件夹、非空文件夹
* @param dir 需删除的文件/文件夹
*/
public static void deleteNotEmptyFile(File dir){
if (dir != null) {
if (dir.isDirectory()) {
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
if (!file.delete()) {
deleteNotEmptyFile(file);
}
}
}
}
dir.delete();
}
}
/**
* 使用递归方式搜索文件
* @param dir 需搜索的文件对象
* @param name 被搜索的文件名
*/
public static void searchFile(File dir, String name){
if (dir != null && dir.isDirectory()){
File[] files = dir.listFiles();
if (files != null && files.length > 0){
for (File file : files) {
if (file.getName().equals(name)){
FIND_BY_NAME.add(file.getAbsolutePath());
}
if (file.isDirectory()) {
searchFile(file, name);
}
}
}
}
}
}
Java File类相关方法,实现文件搜索、文件删除
最新推荐文章于 2024-07-29 14:22:26 发布