java读取文件夹文件并排序
来源:互联网 发布:ipad淘宝历史版本 编辑:程序博客网 时间:2024/06/05 01:07
class SortFile {public long size; public long date; public String name; public SortFile(String name, long date, long size) { this.name = name; this.date = date; this.size = size; }public static SortFile[] sort(SortFile[] src, String mark, boolean rule) { if (rule) {//升序 for (int i = src.length; i > 1; i--) { for (int j = 0; j < i - 1; j++) { boolean change = false; if (mark.equals("name")) { if (src[j].name.compareTo(src[j + 1].name) > 0) { change = true; } }else if (mark.equals("date")) { if (src[j].date > src[j + 1].date) { change = true; } }else { if (src[j].size > src[j + 1].size) { change = true; }} if (change) { SortFile temp = src[j]; src[j] = src[j + 1]; src[j + 1] = temp; } } } }else { //降序 for (int i = src.length; i > 1; i--) { for (int j = 0; j < i - 1; j++) { boolean change = false; if (mark.equals("name")) { if (src[j].name.compareTo(src[j + 1].name) < 0) { change = true; } }else if (mark.equals("date")) { if (src[j].date < src[j + 1].date) { change = true; } }else { if (src[j].size < src[j + 1].size) { change = true; }} if (change) { SortFile temp = src[j]; src[j] = src[j + 1]; src[j + 1] = temp; } } } } return src; }
//获得文件列表ArrayList al = new ArrayList();File f = new File("E:\\test");String[] names = f.list();for (int i = 0; i < names.length; i++) { File fs = new File(f, names[i]);SortFile sf = new SortFile(names[i],fs.lastModified(), fs.length()); al.add(sf);}//转换成数组SortFile[] sfSrc = new SortFile[al.size()];for(int i=0;i<al.size();i++){sfSrc[i] = (SortFile) al.get(i);System.out.println(sfSrc[i].name+" "+sfSrc[i].size+" "+sfSrc[i].date);}//按 date ,name ,size 排序SortFile[] forName = SortFile.sort(sfSrc,"date",true);//true为升序 ,false为降序for(int i=0;i<forName.length;i++){System.out.println(forName[i].name+" "+forName[i].size+" "+forName[i].date);}