建立出file類的對象并不代表該路徑下有此檔案或目錄。
用public boolean
exists()可以判斷檔案是否存在。
file類的對象可以是目錄或者檔案。
如果是目錄,public boolean isdirectory()傳回true;
如果是檔案(非目錄則是檔案),public boolean isfile()傳回true;
但是注意需要先判斷檔案是否存在,如果檔案不存在,上面兩個方法都傳回false,即不存在的file類對象既不是檔案也不是目錄。
public boolean
createnewfile()會建立一個新的空檔案,隻有該檔案不存在的時候會建立,如果檔案已經存在的話則傳回false。
public boolean mkdir()
建立目錄,成功傳回true。隻能建立一個檔案夾,要求所有的父目錄都存在,否則建立失敗。
public boolean mkdirs()
建立目錄,成功傳回true,會建立所有不存在的父目錄。(注意即便最後建立失敗,但是也可能建立了一些中間目錄)。
上面兩個方法如果要建立的目錄已經存在,不再重新建立,都傳回false,隻有建立目錄傳回true。
列出目錄中的檔案有以下方法可選:
string[] list()
string[] list(filenamefilter
filter)
傳回檔案名數組。
file[] listfiles()
file[] listfiles(filefilter
file[] listfiles(filenamefilter
傳回file數組。
參數是檔案或者檔案名過濾器。
注意傳回為空和傳回為null的意義是不同的。
若不包含(符合條件的)檔案,傳回為空。
但是如果傳回為null,則表明調用方法的file對象可能不是一個目錄,或者發生了io錯誤。
boolean delete()方法會删除檔案,如果file對象是檔案則直接删除,對于目錄來說,如果是空目錄則直接删除,非空目錄則無法删除,傳回false。
如果要删除的檔案不能被删除則會抛出ioexception。
注意:不論是建立檔案、建立目錄還是删除檔案,隻有在動作真正發生的時候會傳回true。
在項目中寫一些工具類包裝通用操作是很有必要的,看了一下apache的fileutils類,copy了一些方法出來:
fileutils.java
file類官方文檔:
org.apache.commons.io.fileutils源碼:
本部落格舊博文: