包含文件和目录的文件数组

时间:2014-02-28 06:00:55

标签: java arrays file storage

我有Java数据库,如下所示

File[] fileList = new File("c:/data").listFiles();

fileList对象包含文件和目录。我想知道这些项目在fileList对象中的顺序(文件首先是目录,然后是目录,反之亦然)。

fileList对象中的项目顺序是每次都保持相同还是取决于任何因素?

提前致谢。

3 个答案:

答案 0 :(得分:2)

如果你看一下docs,就会清楚地解释:

  

返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。   如果此抽象路径名不表示目录,则此方法返回null。否则返回一个File对象数组,一个用于目录中的每个文件或目录。表示目录本身的路径名和目录的父目录不包含在结果中。每个生成的抽象路径名都是使用File(File,String)构造函数从此抽象路径名构造的。因此,如果此路径名是绝对的,那么每个结果路径名都是绝对的;如果此路径名是相对的,则每个结果路径名将相对于同一目录。

     

无法保证结果数组中的名称字符串会以任何特定顺序出现;特别是,它们不能保证按字母顺序出现。

答案 1 :(得分:1)

正如File#listFiles() API中所述,建议在使用方法时检查API

  

无法保证结果数组中的名称字符串   将以任何特定顺序出现;特别是,它们不是   保证按字母顺序出现。

答案 2 :(得分:1)

listFiles方法,有或没有过滤器,不保证任何顺序。

但是,它会返回一个数组,您可以使用Arrays.sort()对其进行排序。

为了首先获取目录,我将使用isDirectory

两次迭代数组

http://docs.oracle.com/javase/7/docs/api/java/io/File.html#isDirectory()