一、概述
檔案和目錄路徑名的抽象表示形式。
File更應該叫做一個路徑,檔案路徑或者檔案夾路徑;路徑分為絕對路徑和相對路徑,絕對路徑是一個固定的路徑,從盤符開始;相對路徑相對于某個位置,在eclipse下是指目前項目下。
二、構造方法
根據 parent 抽象路徑名和 child 路徑名字元串建立一個新
File(File parent, String child)
執行個體。
File
通過将給定路徑名字元串轉換為抽象路徑名來建立一個新
File(String pathname)
執行個體。
File
根據 parent 路徑名字元串和 child 路徑名字元串建立一個新
File(String parent, String child)
執行個體。
File
通過将給定的 file: URI 轉換為一個抽象路徑名來建立一個新的 File 執行個體。
File(URI uri)
File file = new File("F:\\java學習\\day01.avi");
File file = new File("xxx.txt");
String parent = "F:\\java學習";
String child = "day01.avi";
File file = new File(parent,child);
File parent = new File("F:\\java學習");
String child = "day01.avi";
File file = new File(parent, child);
注:第一種方式比起第三種方式,可以更加友善的使用File類中的相關方法
三、File類的建立功能
boolean
當且僅當不存在具有此抽象路徑名指定名稱的檔案時,不可分地建立一個新的空檔案。
createNewFile()
boolean
建立此抽象路徑名指定的目錄。
mkdir()
boolean
建立此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。
mkdirs()
File file = new File("yyy.txt");
System.out.println(file.createNewFile()); //如果沒有就建立,傳回true
File dir1 = new File("aaa");
System.out.println(dir1.mkdir());
File dir2 = new File("bbb.txt"); //這樣寫是可以的,檔案夾也是可以有字尾的
System.out.println(dir2.mkdir());
File dir3 = new File("ccc\\ddd");
System.out.println(dir3.mkdirs()); //建立多級目錄
四、File類的重命名和删除功能
boolean
重新命名此抽象路徑名表示的檔案。
renameTo(File dest)
boolean
删除此抽象路徑名表示的檔案或目錄。
delete()
重命名注意事項
- 如果路徑名相同,就是改名。
- 如果路徑名不同,就是改名并剪切。
File file1 = new File("ooo.txt");
File file2 = new File("D:\\xxx.txt");
System.out.println(file1.renameTo(file2));
删除注意事項:
- Java中的删除不走資源回收筒。
- 要删除一個檔案夾,請注意該檔案夾内不能包含檔案或者檔案夾; windows中也是,先周遊删除每一個檔案然後再删除檔案夾。
File file1 = new File("yyy.txt");
System.out.println(file1.delete());
File file2 = new File("aaa");
System.out.println(file2.delete());
File file3 = new File("ccc"); //如果删除一個檔案夾,那麼檔案夾必須是空的
System.out.println(file3.delete());
五、File類的判斷功能
boolean
測試此抽象路徑名表示的檔案是否是一個目錄。
isDirectory()
boolean
測試此抽象路徑名表示的檔案是否是一個标準檔案。
isFile()
boolean
測試此抽象路徑名表示的檔案或目錄是否存在。
exists()
boolean
測試應用程式是否可以執行此抽象路徑名表示的檔案。
canExecute()
boolean
測試應用程式是否可以讀取此抽象路徑名表示的檔案。
canRead()
boolean
測試應用程式是否可以修改此抽象路徑名表示的檔案。
canWrite()
boolean
測試此抽象路徑名指定的檔案是否是一個隐藏檔案。
isHidden()
File file = new File("zzz");
file.setReadable(false);
System.out.println(file.canRead()); //windows系統認為所有的檔案都是可讀的
file.setWritable(true);
System.out.println(file.canWrite()); //windows系統可以設定為不可寫
File file2 = new File("aaa.txt");
System.out.println(file2.isHidden()); //判斷是否是隐藏檔案
System.out.println(file.isHidden());
六、File類的擷取功能
String
傳回此抽象路徑名的絕對路徑名字元串。
getAbsolutePath()
String
将此抽象路徑名轉換為一個路徑名字元串。
getPath()
String
傳回由此抽象路徑名表示的檔案或目錄的名稱。
getName()
long
傳回由此抽象路徑名表示的檔案的長度。
length()
long
傳回此抽象路徑名表示的檔案最後一次被修改的時間。
lastModified()
String[]
傳回一個字元串數組,這些字元串指定此抽象路徑名表示的目錄中的檔案和目錄。
list()
File[]
傳回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的檔案。
listFiles()
File dir = new File("F:/");
String[] arr = dir.list(); //僅為了擷取檔案名
for (String string : arr) {
System.out.println(string);
}
File[] subFiles = dir.listFiles();
for (File file : subFiles) { //擷取檔案對象
System.out.println(file);
}