以下示例代码来自网络,希望整理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/