android - 如何在 Android 中按文件名或日期按升序或降序对文件或文件夹进行排序?

标签 android file sorting filesort

以下示例代码来自网络,希​​望整理the List<String> files按文件名升序或降序。 希望L ist<String> files按文件日期升序或降序排列,我该怎么做?谢谢!

List<String> directories 相同的问题.

  List<String> files = Arrays.asList(f.list(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            File f=new File(dir, name);               

            return f.isFile()&&(f.isHidden()==false);
        }
    }));
    Collections.sort(files);




List<String> directories = Arrays.asList(f.list(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        File f=new File(dir, name);
        return f.isDirectory()&& (f.isHidden()==false);
    }
}));
Collections.sort(directories);

最佳答案

只需提供您的文件数组,它就会简单排序。

Arrays.sort(files, new Comparator<File>() {
    public int compare(File f1, File f2) {
        return Long.compare(f1.lastModified(), f2.lastModified());
    }
});

演示:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        File path = Environment.getExternalStoragePublicDirectory("/DCIM/Camera");
        File[] filesList = path.listFiles();
        for (int i = 0; i < filesList.length; i++) {
            Date lastModDate = new Date(filesList[i].lastModified());
            Log.i("Pre sorted", "File last modified @ : " + lastModDate.toString());
        }

        Arrays.sort(filesList, new Comparator<File>() {
            public int compare(File f1, File f2) {
                return Long.compare(f1.lastModified(), f2.lastModified());
            }
        });
        Log.i("sorted", "----------------------------------------");
        for (int i = 0; i < filesList.length; i++) {
            Date lastModDate = new Date(filesList[i].lastModified());
            Log.i("Pro sorted", "File last modified @ : " + lastModDate.toString());
        }
    }

关于android - 如何在 Android 中按文件名或日期按升序或降序对文件或文件夹进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651513/

相关文章:

javascript - 一个输入文件生成多个输出文件

c# - 对包含字母和破折号的字符串进行排序时出现意外行为

java - 按类列的值按升序对 Parse 集合进行排序

java - 类 'Anonymous class derived from PlaceSelectedListener' 必须声明为抽象或实现抽象方法

android - 如何从登录屏幕删除底部导航栏

windows - 文件扩展名规则?

wpf - 在 WPF 中快速显示大型排序列表?

java - ListView 崩溃,无法处理 Holder 类

java - 如何使用动态 SerializedName 注释?

javascript - 用于跨浏览器文件上传的 jquery 插件