最初のケースは、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()); } } }
2番目のケースでは、フォルダートラバーサルの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; } }
以上がこの記事の全内容です。皆さんの勉強もPHP中国語サイトを応援していただければ幸いです。
Android が特定のディレクトリ内のすべてのファイルをどのように走査するかに関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。