我们通常将自己的定义好的文件夹,来存放自己的文件,必要的时候我们可以去使用和管理这些文件的,这个时候,我们就要拿到自己存放在本地上的文件夹路径,去处理了。我这边找到了一个别人实现的方法,简单记录一下,方便自己使用,直接上码:

 /**
     * 获取目录下所有文件(按时间排序)
     *
     * @param path
     * @return
     */
    public static List<File> listFileSortByModifyTime(String path) {
        List<File> list = getFilesye(path, new ArrayList<File>());
        if (list != null && list.size() > 0) {
            Collections.sort(list, new Comparator<File>() {
                public int compare(File file, File newFile) {
                    if (file.lastModified() < newFile.lastModified()) {
                        return -1;
                    } else if (file.lastModified() == newFile.lastModified()) {
                        return 0;
                    } else {
                        return 1;
                    }
                }
            });
        }
        return list;
    }

    /**
     * 获取目录下所有文件
     *
     * @param realpath
     * @param files
     * @return
     */
    public static List<File> getFilesye(String realpath, List<File> files) {
        File realFile = new File(realpath);
        if (realFile.isDirectory()) {
            File[] subfiles = realFile.listFiles();
            for (File file : subfiles) {
                if (file.isDirectory()) {
                    getFilesye(file.getAbsolutePath(), files);
                } else {
                    files.add(file);
                }
            }
        }
        return files;
    }

调用方法使用也很方便: 

       

 List<File> list = listFileSortByModifyTime("传入你自己的路径");
        int ll = 0;
        for (File file : list) {
            ll++;
            Log.i("ZMS", ll + ":" + file.getName() + " = " + file.lastModified());
        }

在这里我们看看我本地的文件夹实际的文件信息,当然这边本地是按文件的大小来排序的

as打印控制台:

 

文件对应的时间戳 :

 

然后这边就可以实现一个时间从旧到最新时间的一个文件排序了。

当然我这边是引用别人的方法实现的,你还可以参考下面链接进去,看原文的:https://www.jb51.net/article/147890.htm

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐