File是描述一個文件或者文件夾亦稱爲目錄的類。java
File中有兩種建立file對象的方法:File(String pathname)和 File(File parent, String child);測試
一、經過路徑名建立file文件spa
//1.表示建立了一個file對象指向D盤的a.txt //只是將傳入的字符串標記爲一個file對象 //實際上此時並不去計算機中檢查這個文件是否存在 File file = new File("D:a.txt"); //File file = new File("D:\\test.txt"); //File file = new File("D:\\a\\b\\c"); //2.建立文件 //當且僅當這個文件不存在時候,纔會建立一個新文件 //這個方法只能用於建立文件 boolean b = file.createNewFile();
二、經過父路徑和子路徑建立file對象操作系統
本質上是拼接父路徑和子路徑,而後建立file對象。code
public void cutFile(File src, File dest) { if(src.isDirectory()) { return; } //獲取要剪切的文件的名字 String fileName =src.getName(); //建立同名文件 File newFile = new File(dest, fileName); }
在Windows中,用\\間隔目錄;在Linux或者是Unix中,是用/間隔目錄,Java中爲了屏蔽不一樣操做系統的差別性,因此提供了File.separator表示中間符。對象
示例以下blog
File file = new File("D:"+ File.separator +"everydayNote" + File.separator + "Day08"
+ File.separator + "Day08 - 副本");
在Windows中,用;間隔不一樣的路徑;在Linux或者Unix中,用:間隔不一樣的路徑,java中爲了屏蔽不一樣操做系統的差別性,因此提供了File.pathSeparator表示間隔符;字符串
以盤符或者是/開頭的路徑。在計算路徑的時候和當前路徑沒有任何關係。get
不以盤符或者是/開頭的路徑。在計算路徑的時候須要以當前路徑爲基準進行計算。「../」表示上一層目錄。虛擬機
示例:
File file = new File("D:\\a.txt");
//1. 獲取絕對路徑 System.out.println(file.getAbsolutePath()); //2. 獲取路徑 System.out.println(file.getPath()); System.out.println(file.getParent());
建立文件的方法:createNewFile()在指定位置建立一個空文件,成功就返回true,若是已存在就不建立而後返回false
建立單級目錄的方法:mkdir(): 在指定位置建立目錄,這隻會建立最後一級目錄,若是上級目錄不存在就拋異常。
建立多級目錄:mkdirs() 在指定位置建立目錄,這會建立路徑中全部不存在的目錄。
重命名文件:renameTo(File dest) 重命名文件或文件夾,也能夠操做非空的文件夾,文件不一樣時至關於對文件進行剪切,剪切時候不能操做非空的文件夾。移動/重命名成功則返回true,失敗則返回false。
exists() 文件或文件夾是否存在。
判斷是否爲一個文件:isFile() 是不是一個文件,若是不存在,則始終爲false。
判斷是否爲一個目錄:isDirectory() 是不是一個目錄,若是不存在,則始終爲false。
判斷文件是不是爲隱藏文件:isHidden() 是不是一個隱藏的文件或是不是隱藏的目錄。
判斷文件路徑是否爲絕對路徑:isAbsolute() 測試此抽象路徑名是否爲絕對路徑名。
獲取目錄下全部的子文件和字目錄:listFiles()
獲取文件名:getName() 獲取文件或文件夾的名稱,不包含上級路徑。
獲取文件路徑:getPath() 返回絕對路徑,能夠是相對路徑,可是目錄要指定
獲取文件絕對路徑:getAbsolutePath() 獲取文件的絕對路徑,與文件是否存在不要緊
獲取文件路徑:length() 獲取文件的大小(字節數),若是文件不存在則返回0L,若是是文件夾也返回0L。
獲取文件父路徑: getParent() 返回此抽象路徑名父目錄的路徑名字符串;若是此路徑名沒有指定父目錄,則返回null。
獲取文件最後修改的時間:lastModified() 獲取最後一次被修改的時間。
刪除方法:delete() 刪除文件或一個空文件夾,若是是文件夾且不爲空,則不能刪除,成功返回true,失敗返回false。
終止時刪除方法:deleteOnExit() 在虛擬機終止時,請求刪除此抽象路徑名錶示的文件或目錄,保證程序異常時建立的臨時文件也能夠被刪除
刪除一個文件下全部的文件:
思路:若是是文件則直接刪除,若是是文件夾,則遍歷該文件夾,而後刪除其中的文件。
public static boolean deleteDirectory(String filePath) { File file = new File(filePath); if(file.isFile()) { file.delete(); } else if(file.isDirectory()) { File[] fs = file.listFiles(); for(File f : fs) { deleteDirectory(f); } } file.delete(); return true; }