1. 構造函數
File(String args0)//使用一個表示文件或目錄的路徑的字符串創建一個File對象
File(URL args0)//使用一個URL對象創建File對象
File(File args0, String args1)//使用一個File對象(一般是目錄)和一個文件名字符串創建File對象
File(String args0, String args1)//使用一個目錄字符串和一個文件名字符串創建對象
使用File類需要注意兩點:
第一,File類用於表示文件或目錄的名稱、大小等信息,不能用於文件內容的訪問。
第二,傳參時路徑中的斜杠需換成反斜杠或雙斜杠。
2. 常用方法
exists()//判斷當前文件或目錄是否存在
mkdir()//創建單級目錄,不能創建多級目錄
mkdirs()//創建多級目錄
createNewFile()//按照當前路徑創建文件,使用該方法需要拋出異常,同時路徑不存在時會產生異常
delete()//刪除當前目錄或文件
isDirectory()//判斷當前File對象是否目錄
isFile()//判斷當前File對象是否一個文件
getAbsolutePath()//返回當前目錄或文件的絕對路徑
getName()//返回當前目錄或文件的名稱
getParent()//返回當前目錄或文件的父級路徑
list()//返回一個String數組,為當前目錄下的子目錄和文件,不包括子目錄下的文件或目錄
listFiles()//返回一個File數組,為當前目錄下的子目錄和文件,不包括子目錄下的文件或目錄
3. 范例
遍歷目錄,將所有層級的所有目錄打印。
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) {
File dir = new File("F:/documents/example");
listDirectory(dir);
}
public static void listDirectory(File dir) {
if (!dir.exists()) {
throw new IllegalArgumentException("目錄" + dir + "不存在");
}
if (!dir.isDirectory()) {
throw new IllegalArgumentException(dir + "不是目錄");
}
File[] files = dir.listFiles();
if (files != null && files.length > 0) {
for (File file : files) {
if (file.isDirectory()) {
listDirectory(file);
} else {
System.out.println(file);
}
}
}
}
}