天天看點

File類詳解

一、概述

檔案和目錄路徑名的抽象表示形式。

File更應該叫做一個路徑,檔案路徑或者檔案夾路徑;路徑分為絕對路徑和相對路徑,絕對路徑是一個固定的路徑,從盤符開始;相對路徑相對于某個位置,在eclipse下是指目前項目下。

二、構造方法

File(File parent, String child)

          根據 parent 抽象路徑名和 child 路徑名字元串建立一個新

File

執行個體。

File(String pathname)

          通過将給定路徑名字元串轉換為抽象路徑名來建立一個新

File

執行個體。

File(String parent, String child)

          根據 parent 路徑名字元串和 child 路徑名字元串建立一個新

File

執行個體。

File(URI uri)

          通過将給定的 file: URI 轉換為一個抽象路徑名來建立一個新的 File 執行個體。
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);
}