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

作者:lijiao 时间:2022-12-11 12:27:33 

第一个案例为大家分享了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,遍历,文件
0
投稿

猜你喜欢

  • Java使用组件编写窗口实现网上文件下载

    2023-09-14 06:08:36
  • C#实现的字符串转MD5码函数实例

    2023-03-02 15:34:43
  • android 使用Xml文件定义Shape方式

    2022-09-08 19:19:38
  • Java 读写锁源码分析

    2021-08-31 01:48:54
  • SpringBoot中JPA实现Sort排序的三种方式小结

    2022-02-12 23:35:12
  • Android框架Volley之利用Imageloader和NetWorkImageView加载图片的方法

    2023-07-06 00:21:08
  • Spring Boot 整合mybatis 与 swagger2

    2022-05-01 06:32:17
  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    2021-05-27 03:55:49
  • 学习使用Android Chronometer计时器

    2022-02-20 16:58:25
  • shiro无状态web集成的示例代码

    2021-10-13 06:15:46
  • 谈谈Java中自定义注解及使用场景

    2022-08-28 04:45:39
  • java中的interface接口实例详解

    2023-10-12 22:03:10
  • Android实现将一个Activity设置成窗口样式的方法

    2023-07-04 18:56:38
  • 详细解读Java编程中面向字符的输入流

    2023-09-27 10:39:21
  • C# Split分隔字符串的应用(C#、split、分隔、字符串)

    2021-12-01 23:13:51
  • Java 滑动窗口最大值的实现

    2021-09-10 15:34:20
  • SpringBoot整合dataworks的实现过程

    2023-11-29 12:13:09
  • java参数传递之值传递和引用传递

    2021-09-26 10:28:46
  • Spring启动时实现初始化有哪些方式?

    2023-09-20 18:25:57
  • Mybatis实现增删改查

    2022-05-26 22:00:20
  • asp之家 软件编程 m.aspxhome.com