热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android基于名称、修改时间、大小实现文件夹排序

这篇文章主要为大家详细介绍了Android基于名称、修改时间、大小实现文件夹排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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 

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


推荐阅读
  • 基于函数实现的进制转换工具
    本文介绍了一种利用函数实现不同进制数(二进制、八进制、十进制)之间转换的方法。包括了程序的运行效果展示、所使用的主要函数解析、以及如何验证用户输入的合法性。整个项目仅使用了两个全局变量来存储用户的选项和输入的数值。 ... [详细]
  • ArcGIS技巧:为相邻地块创建指定宽度的隔离带
    在地理信息系统(GIS)的数据处理中,为了满足特定项目的质量检查标准,需要在相邻地块之间创建一定宽度的隔离带。本文将探讨如何使用ArcGIS工具解决这一问题,确保不同地块图斑间保持规定的最小距离。 ... [详细]
  • 如何在Android项目中使用Framework.jar或其他系统Jar包
    本文介绍了一种方法,通过创建自定义库目录来集成系统的Jar包,以避免方法数限制,并确保项目的顺利编译。首先,需要在项目的src同级目录下创建一个专门用于存放系统Jar包的目录。 ... [详细]
  • 本文探讨了Windows Presentation Foundation (WPF)如何通过扩展Microsoft Build Engine (MSBuild)来增强其构建能力,特别是在处理WPF特有的任务时。 ... [详细]
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • 深入解析Java中的锁类型及其应用场景
    本文详细介绍了Java中常见的锁类型,包括乐观锁与悲观锁、独占锁与共享锁、互斥锁与读写锁、可重入锁、公平锁与非公平锁、分段锁、偏向锁、轻量级锁、重量级锁以及自旋锁。每种锁的特性、作用及适用场景均有所涉及。 ... [详细]
  • 本文探讨了HDU 4035的问题,涉及一个由n个房间组成的迷宫,这些房间通过n-1条隧道相互连接,形成一棵树结构。任务是从起点1号房间出发,计算到达出口所需经过的平均隧道数量,考虑了在每个房间中可能发生的三种情况及其相应概率。 ... [详细]
  • 本文介绍如何通过自定义控件LoadLayout实现ListView的上拉加载更多和下拉刷新功能。LoadLayout支持上拉加载,而下拉刷新则利用了android.support.v4.widget.SwipeRefreshLayout组件。 ... [详细]
  • 本文详细介绍了如何在Windows系统中安装并使用JEB逆向工具,包括必要的环境配置和基本操作指南。 ... [详细]
  • Android 手机安全应用首屏布局设计
    本文详细介绍了如何构建一个功能丰富的手机安全应用的首个导航界面布局。通过实例代码和效果展示,帮助开发者快速理解和实现相关功能。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 本文介绍了Android中常见的动画类型及其应用场景,通过具体的代码示例展示了如何在Activity跳转时添加平滑过渡效果,提升用户体验。 ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • 本文探讨了在iOS应用中实现类似Android Snack Bar功能的方法,并特别关注如何确保Snack Bar正确显示在键盘下方。 ... [详细]
  • 本文介绍了一种解决方案,当笔记本电脑不具备作为无线接入点的能力时,如何通过开启Android手机的便携WLAN热点功能,使笔记本能够连接到手机并共享其网络资源,从而实现上网。文中详细描述了在Linux系统下配置的具体步骤。 ... [详细]
author-avatar
mobiledu2502895693
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有