Home > Java > javaTutorial > How to traverse all files in a specific directory in Android

How to traverse all files in a specific directory in Android

高洛峰
Release: 2017-01-17 15:23:52
Original
1423 people have browsed it

The first case shares that Android traverses all files in a specific directory, including subdirectories, and deletes the latest created ones.

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());
     }
   }
 }
Copy after login

The second case introduces the folder traversal Android code for your reference. The specific content is as follows

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;
  }
}
Copy after login

The above is the entire content of this article. I hope it will be helpful to everyone's learning. I also hope that everyone will support the PHP Chinese website.

For more related articles on how Android traverses all files in a specific directory, please pay attention to the PHP Chinese website!

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template