Android如何遍历特定目录下所有文件

 更新时间:2016年07月21日 15:06:43   投稿:lijiao  
这篇文章主要为大家详细介绍了Android如何遍历特定目录下所有文件的代码,供大家参考,感兴趣的小伙伴们可以参考一下

第一个案例为大家分享了Android遍历特定目录下所有文件,包含子目录的,并删除最新创建的。

 private boolean deleteLastFromFloder(String path) {
    boolean success = false;
    try {
      ArrayList<File> images = new ArrayList<File>();
      getFiles(images, path);
      File latestSavedImage = images.get(0);
      if (latestSavedImage.exists()) {
        for (int i = 1; i < images.size(); i++) {
          File nextFile = images.get(i);
          if (nextFile.lastModified() > latestSavedImage.lastModified()) {
            latestSavedImage = nextFile;
          }
        }

        Log.e("brady", "images = " + latestSavedImage.getAbsolutePath());
        success = latestSavedImage.delete();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return success;
  }

  private void getFiles(ArrayList<File> fileList, String path) {
    File[] allFiles = new File(path).listFiles();
    for (int i = 0; i < allFiles.length; i++) {
      File file = allFiles[i];
      if (file.isFile()) {
        fileList.add(file);
      } else if (!file.getAbsolutePath().contains(".thumnail")) {
        getFiles(fileList, file.getAbsolutePath());
      }
    }
  }

第二个案例介绍了文件夹遍历Android代码,供大家参考,具体内容如下

package com.once;
 
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
/**
 * 文件夹遍历
 * @author once
 *
 */
public class DirTraversal {
   
  //no recursion
  public static LinkedList<File> listLinkedFiles(String strPath) {
    LinkedList<File> list = new LinkedList<File>();
    File dir = new File(strPath);
    File file = dir.listFiles();
    for (int i = 0; i < file.length; i++) {
      if (file.isDirectory())
        list.add(file);
      else
        System.out.println(file.getAbsolutePath());
    }
    File tmp;
    while (!list.isEmpty()) {
      tmp = (File) list.removeFirst();
      if (tmp.isDirectory()) {
        file = tmp.listFiles();
        if (file == null)
          continue;
        for (int i = 0; i < file.length; i++) {
          if (file.isDirectory())
            list.add(file);
          else
            System.out.println(file.getAbsolutePath());
        }
      } else {
        System.out.println(tmp.getAbsolutePath());
      }
    }
    return list;
  }
 
   
  //recursion
  public static ArrayList<File> listFiles(String strPath) {
    return refreshFileList(strPath);
  }
 
  public static ArrayList<File> refreshFileList(String strPath) {
    ArrayList<File> filelist = new ArrayList<File>();
    File dir = new File(strPath);
    File files = dir.listFiles();
 
    if (files == null)
      return null;
    for (int i = 0; i < files.length; i++) {
      if (files.isDirectory()) {
        refreshFileList(files.getAbsolutePath());
      } else {
        if(files.getName().toLowerCase().endsWith("zip"))
          filelist.add(files);
      }
    }
    return filelist;
  }
}

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

相关文章

  • Android无限循环RecyclerView的完美实现方案

    Android无限循环RecyclerView的完美实现方案

    这篇文章主要介绍了Android无限循环RecyclerView的完美实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法

    Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法

    这篇文章主要介绍了ScrollView 下嵌套 ListView 或 GridView 会发列表现数据只能显示一行。因为他们都是滚动结构,两个滚动条放到一起就会引起冲突,这里提供解决办法相关资料,需要的朋友可以参考下
    2017-07-07
  • Android深入分析属性动画源码

    Android深入分析属性动画源码

    这篇文章主要给大家介绍了关于Android动画系列教程之属性动画的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Android基础之Fragment与Activity交互详解

    Android基础之Fragment与Activity交互详解

    以下小编就为大家介绍一下Fragment跟Activity之间的关系。需要的朋友可以过来参考下
    2013-07-07
  • Android客户端post请求服务器端实例

    Android客户端post请求服务器端实例

    这篇文章主要介绍了Android客户端post请求服务器端实例,本文讲解了Android客户端与服务器端通信方式、解析服务器端返回数据的解释、用GET和POST访问http资源等内容,并给出了一个POST实例,需要的朋友可以参考下
    2015-06-06
  • Android ViewPager实现左右滑动翻页效果

    Android ViewPager实现左右滑动翻页效果

    这篇文章主要为大家详细介绍了Android ViewPager实现左右滑动翻页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 关于Android多渠道打包问题看这一篇就够了

    关于Android多渠道打包问题看这一篇就够了

    这篇文章主要介绍了关于Android程序的多渠道打包方法,还不会的同学快进来学习下吧,建议收藏以防迷路
    2021-08-08
  • Android自定义View事件分发流程详解

    Android自定义View事件分发流程详解

    这篇文章主要为大家介绍了Android自定义View事件分发流程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Android、iOS和Windows Phone中的推送技术详解

    Android、iOS和Windows Phone中的推送技术详解

    这篇文章主要介绍了Android、iOS和Windows Phone中的推送技术详解,推送技术的实现通常会使用服务端向客户端推送消息的方式,也就是说客户端通过用户名、Key等ID注册到服务端后,在服务端就可以将消息向所有活动的客户端发送,需要的朋友可以参考下
    2015-01-01
  • Android TV开发:实现3D仿Gallery效果的实例代码

    Android TV开发:实现3D仿Gallery效果的实例代码

    这篇文章主要介绍了Android TV开发:实现3D仿Gallery效果的实例代码,效果:滚动翻页+ 页面点击+页码指示器+焦点控制,主要为了移植到电视上做了按键事件和焦点控制。
    2018-05-05

最新评论