我有文件中的Java數組如下文件陣列,文件和目錄
File[] fileList = new File("c:/data").listFiles();
文件列表中的對象有文件和目錄。我想知道這些項目將在fileList對象中的順序(文件首先是文件,然後是目錄,反之亦然)。
是對fileList對象內項目的順序將保持相同每次或它所依賴的任何因素?
在此先感謝。
我有文件中的Java數組如下文件陣列,文件和目錄
File[] fileList = new File("c:/data").listFiles();
文件列表中的對象有文件和目錄。我想知道這些項目將在fileList對象中的順序(文件首先是文件,然後是目錄,反之亦然)。
是對fileList對象內項目的順序將保持相同每次或它所依賴的任何因素?
在此先感謝。
listFiles方法有或沒有過濾器不保證任何順序。
但是,它返回一個數組,您可以使用Arrays.sort()進行排序。
爲了得到目錄開始我會重複使用isDirectory
http://docs.oracle.com/javase/7/docs/api/java/io/File.html#isDirectory()
正如File#listFiles()
API稱,這是推薦使用的方法
不保證所得到陣列 在名稱字符串會出現在任何特定的順序時檢查的API;他們不是,特別是, 保證按字母順序出現。
如果你看看docs,它清楚地解釋:
返回抽象路徑名錶示此抽象路徑名錶示的目錄中的文件的數組。 如果這個抽象路徑名不表示一個目錄,那麼這個方法返回null。否則,將返回一個File對象數組,其中一個用於目錄中的每個文件或目錄。表示目錄本身和目錄的父目錄的路徑名不包含在結果中。每個生成的抽象路徑名都是使用File(File,String)構造函數從此抽象路徑名構建而來的。因此,如果這個路徑名是絕對的,那麼每個結果路徑名都是絕對的;如果此路徑名是相對的,則每個生成的路徑名將相對於相同的目錄。
無法保證結果數組中的名稱字符串將以任何特定順序出現;他們並不特別保證按字母順序出現。
數組兩次提取目錄在剛讀listFiles方法的說明 – swapnil7