我正在使用java.io API。以下模式在我的目录中有很多文件。

    FilenameFilter fileFilter = new FilenameFilter() {
        public boolean accept(File dir, String name) {

            return name.matches(filePrefix+"_.*\\."+fileExt);

        }
    };

    String listFiles [] = dirFile.list(fileFilter);
       for(int i = 0 ;i < listFiles.length ; i++){
        listOfFiles.add(listFiles[i]);
        // need only 10 files to processed
        if(i == 10){
            break;
        }
    }


我想知道list方法将基于什么进行列出。例如,如果我想进行基于时间的排序-如果我想要10个最旧/最新的文件。

我该怎么做。

解决方案:

Arrays.sort(listFiles, new Comparator<File>() {

        @Override
        public int compare(File f1, File f2) {
            return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
        }
    });

最佳答案

以上仅过滤器。使用File.listFiles()方法可能会更好,该方法返回一组File对象(您可以提供一个可选的过滤器,如上所述)。这些对象将具有您想要进一步排序的属性(也许编写自定义Comparator?)。请参见the doc here和排序教程here

10-07 16:02