File file = new File(realpath);
String []dir = file.list();
String tempfile = "";
for (int i=0;i<dir.length;i++){
for(int j=dir.length-1;j>=i;j--){ //降序
if(j!=dir.length-1){
File file2 = new File(realpath+"\\"+dir[j]);
File file3 = new File(realpath+"\\"+dir[j+1]);
if(file2.lastModified() < file3.lastModified()){ //根据文件修改最后时间排序
tempfile = dir[j+1];
dir[j+1] = dir[j];
dir[j] = tempfile;
}
}
}
这样可以实现根据最后修改时间排序了
现在要把他改成类似WINDOWS资源管理器里的排序方式
也就是文件夹根据修改时间排前面,排完后在按修改时间列出文件。。
怎么实现
String []dir = file.list();
String tempfile = "";
for (int i=0;i<dir.length;i++){
for(int j=dir.length-1;j>=i;j--){ //降序
if(j!=dir.length-1){
File file2 = new File(realpath+"\\"+dir[j]);
File file3 = new File(realpath+"\\"+dir[j+1]);
if(file2.lastModified() < file3.lastModified()){ //根据文件修改最后时间排序
tempfile = dir[j+1];
dir[j+1] = dir[j];
dir[j] = tempfile;
}
}
}
这样可以实现根据最后修改时间排序了
现在要把他改成类似WINDOWS资源管理器里的排序方式
也就是文件夹根据修改时间排前面,排完后在按修改时间列出文件。。
怎么实现
File file = new File(realpath);
String[] dir = file.list();
String tempfile = "";
class MyComparator implements java.util.Comparator{
public int compare(Object o1, Object o2){
String s1=(String)o1;
String s2=(String)o2;
File file1 = new File(realpath+"\\"+s1);
File file2 = new File(realpath+"\\"+s2);
if (file1.isDirectory()&&file2.isFile()){
return -1;
} else if(file2.isDirectory()&&file1.isFile()){
return 1;
} else {
long result=file1.lastModified() - file2.lastModified();
return (result<0)?-1:(result>0)?1:0;
}
}
}
java.util.Arrays.sort(dir,new MyComparator());
for (int i=0;i<dir.length;i++){
System.out.println(dir[i]);
}
}