本文实例为大家分享了Android实现文件夹排序的具体代码,供大家参考,具体内容如下

基于名称:

/** * 按文件名排序 * @param filePath */ public static ArrayList orderByName(String filePath) { ArrayList FileNameList = new ArrayList(); File file = new File(filePath); File[] files = file.listFiles(); List fileList = Arrays.asList(files); Collections.sort(fileList, new Comparator() {  @Override  public int compare(File o1, File o2) {  if (o1.isDirectory() && o2.isFile())   return -1;  if (o1.isFile() && o2.isDirectory())   return 1;  return o1.getName().compareTo(o2.getName());  } }); for (File file1 : files) {  if (file1.isDirectory()) {  FileNameList.add(file1.getName());  } } return FileNameList; }

基于最近修改时间:

/** * 按文件修改时间排序 * @param filePath */ public static ArrayList orderByDate(String filePath) { ArrayList FileNameList = new ArrayList(); File file = new File(filePath); File[] files = file.listFiles(); Arrays.sort(files, new Comparator() {  public int compare(File f1, File f2) {  long diff = f1.lastModified() - f2.lastModified();  if (diff > 0)   return 1;  else if (diff == 0)   return 0;  else   return -1;// 如果 if 中修改为 返回-1 同时此处修改为返回 1 排序就会是递减  }   public boolean equals(Object obj) {  return true;  }  });  for (File file1 : files) {  if (file1.isDirectory()) {  FileNameList.add(file1.getName());  } } return FileNameList; }

基于大小:

/** * 按文件大小排序 * @param filePath */ public static ArrayList orderBySize(String filePath) { ArrayList FileNameList = new ArrayList(); File file = new File(filePath); File[] files = file.listFiles(); List fileList = Arrays.asList(files); Collections.sort(fileList, new Comparator() {  public int compare(File f1, File f2) {  long s1 = getFolderSize(f1);  long s2 = getFolderSize(f2);   long diff = s1 - s2;  if (diff > 0)   return 1;  else if (diff == 0)   return 0;  else   return -1;// 如果 if 中修改为 返回-1 同时此处修改为返回 1 排序就会是递减  }   public boolean equals(Object obj) {  return true;  } });  for (File file1 : files) {  if (file1.isDirectory()) {  FileNameList.add(file1.getName());  } } return FileNameList; }  /** * 获取文件夹大小 * @param file File实例 * @return long */ public static long getFolderSize(File file) {  long size = 0; try {  java.io.File[] fileList = file.listFiles();  for (int i = 0; i < fileList.length; i++) {  if (fileList[i].isDirectory()) {   size = size + getFolderSize(fileList[i]);  } else {   size = size + fileList[i].length();  }  } } catch (Exception e) {  e.printStackTrace(); } return size;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. android自由改变Dialog窗口位置的方法
  2. Android(安卓)JUnit单元测试基础实例
  3. android中保存Bitmap图片到指定文件夹中的方法
  4. Android使用Jsoup解析Html表格的方法
  5. ADT+Maven Android(安卓)App开发配置备忘
  6. Activity状态转换和Activity栈
  7. Android下载及安装
  8. [Android(安卓)Studio]添加选项菜单
  9. Android(安卓)AlertDialog对话框详解及实例

随机推荐

  1. android 蓝牙ACL通讯详解
  2. android Ndk学习笔记01之Hello World!
  3. Android艺术探索读书笔记 -IPC机制
  4. Android一键加群实现
  5. android studio打包签名错误please selec
  6. Android再按一次完全退出程序及禁止返回
  7. Android(安卓)MTP框架和流程分析
  8. Android窗口管理服务WindowManagerServic
  9. Android上的否认和欺骗
  10. 引擎设计跟踪(九.9) 文件包系统(Game Pac