目錄
- 批量文件重命名思路
- 存在性判斷
- 文件是否可讀、可寫、可執行、爲隱藏類型
- 創建一個文件
- 創建一個文件夾
- 遞歸創建文件夾
- 判斷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配合使用可用於文件批量重命名!
*/
}
}