目录
- 批量文件重命名思路
- 存在性判断
- 文件是否可读、可写、可执行、为隐藏类型
- 创建一个文件
- 创建一个文件夹
- 递归创建文件夹
- 判断File对象是文件是文件还是文件夹
- 删除一个文件/文件夹( 文件夹为空不可删除 )
- 文件名称获取
- 文件名
- 文件父目录
- 文件全目录
- 文件夹高级获取
- list(FilenameFilter e)
- listFile(FilenameFilter e)
<一> 批量文件重命名思路
- 获取文件夹中所有待重命名文件(可选择性获取)
- 遍历使用indexOf、lastIndexOf、subString截取原文件名
- 创建新名称File对象,使用file.renameTo(newFile)重命名
<二> 基本操作API
package kyleeo.util01;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class FileAddDemo {
public static void main(String[] args) throws IOException {
// 存在性判断
File file = new File("aaa.txt");
System.out.println(file.exists());
// 是否可读/可写/可执行
System.out.println(file.canRead());
System.out.println(file.canWrite());
System.out.println(file.canExecute());
System.out.println(file.isHidden());
System.out.println("---------------------------");
// 创建一个文件
File file1 = new File("aaa.txt");
System.out.println(file1.createNewFile());
// 创建一个文件夹
File file2 = new File("aaa");
System.out.println(file2.mkdir());
// 递归创建文件夹
File file2_1 = new File("aaa\\bbb\\ccc\\ddd");
System.out.println(file2_1.mkdirs());
// 判断File对象是文件还是文件夹
System.out.println(file1.isFile());
System.out.println(file2.isDirectory());
System.out.println("---------------------------");
// 删除一个文件/文件夹
File file3 = new File("aaa");
System.out.println(file3.delete());
System.out.println("---------------------------");
/*
* 文件获取操作
*/
// 获得文件名字符串 getName()
// 获得父级目录字符串 getAbsolutePath()
String s1 = file1.getName(); // aaa.txt
String s2 = file1.getParent(); // null(依赖参数!)
String s3 = file1.getAbsolutePath(); // 全部,包括文件名
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(new File("").getAbsolutePath()); // 获取当前项目目录
System.out.println("---------------------------");
/*
* 文件夹高级获取操作(获取其内部所有文件,空数组或null为异常返回值) String[] list() File[] listFile()
*/
File file4 = new File(new File("").getAbsolutePath() + "\\" + "aaa");
String[] arr = file4.list();
for (String i : arr) {
System.out.println(i);
}
System.out.println("---------------------------");
// 文件重命名:renameTo(File f)
File file1_1 = new File("aaa_change.txt");
System.out.println(file1.renameTo(file1_1));
/*
* 获取e盘下所有.txt文件(一层)
*/
File file5 = new File("e:\\");
File[] fileArray = file5.listFiles();
for (File i : fileArray) {
if (i.isFile()) {
if (i.getName().endsWith(".txt")) {
System.out.println(i.getName());
}
}
}
//上述判断过于繁琐,现在向list方法中传入参数FilenameFilter对象
String[] arr2 = file5.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File temp = new File(dir,name);
if(temp.isFile()) {
if(temp.getName().endsWith(".txt")) {
return true;
}
}
return false;
}
});
for(String i:arr2) {
System.out.println(i);
}
/*
* indexOf、lastIndexOf、subString、renameTo配合使用可用于文件批量重命名!
*/
}
}