我们通常将自己的定义好的文件夹,来存放自己的文件,必要的时候我们可以去使用和管理这些文件的,这个时候,我们就要拿到自己存放在本地上的文件夹路径,去处理了。我这边找到了一个别人实现的方法,简单记录一下,方便自己使用,直接上码:
/**
* 获取目录下所有文件(按时间排序)
*
* @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