directorylist.pde

来自「This is processing for java examples.」· PDE 代码 · 共 106 行

PDE
106
字号
/** * Listing files in directories and subdirectories * by Daniel Shiffman.   *  * This example has three functions:<br /> * 1) List the names of files in a directory<br /> * 2) List the names along with metadata (size, lastModified)<br />  *    of files in a directory<br /> * 3) List the names along with metadata (size, lastModified)<br /> *    of files in a directory and all subdirectories (using recursion)  */void setup() {  // Path  String path = sketchPath;  println("Listing all filenames in a directory: ");  String[] filenames = listFileNames(path);  println(filenames);    println("\nListing info about all files in a directory: ");  File[] files = listFiles(path);  for (int i = 0; i < files.length; i++) {    File f = files[i];        println("Name: " + f.getName());    println("Is directory: " + f.isDirectory());    println("Size: " + f.length());    String lastModified = new Date(f.lastModified()).toString();    println("Last Modified: " + lastModified);    println("-----------------------");  }    println("\nListing info about all files in a directory and all subdirectories: ");  ArrayList allFiles = listFilesRecursive(path);    for (int i = 0; i < allFiles.size(); i++) {    File f = (File) allFiles.get(i);        println("Name: " + f.getName());    println("Full path: " + f.getAbsolutePath());    println("Is directory: " + f.isDirectory());    println("Size: " + f.length());    String lastModified = new Date(f.lastModified()).toString();    println("Last Modified: " + lastModified);    println("-----------------------");  }  noLoop();}// Nothing is drawn in this program and the draw() doesn't loop because// of the noLoop() in setup()void draw() {}// This function returns all the files in a directory as an array of Strings  String[] listFileNames(String dir) {  File file = new File(dir);  if (file.isDirectory()) {    String names[] = file.list();    return names;  } else {    // If it's not a directory    return null;  }}// This function returns all the files in a directory as an array of File objects// This is useful if you want more info about the fileFile[] listFiles(String dir) {  File file = new File(dir);  if (file.isDirectory()) {    File[] files = file.listFiles();    return files;  } else {    // If it's not a directory    return null;  }}// Function to get a list ofall files in a directory and all subdirectoriesArrayList listFilesRecursive(String dir) {   ArrayList fileList = new ArrayList();    recurseDir(fileList,dir);   return fileList;}// Recursive function to traverse subdirectoriesvoid recurseDir(ArrayList a, String dir) {  File file = new File(dir);  if (file.isDirectory()) {    // If you want to include directories in the list    a.add(file);      File[] subfiles = file.listFiles();    for (int i = 0; i < subfiles.length; i++) {      // Call this function on all files in this directory      recurseDir(a,subfiles[i].getAbsolutePath());    }  } else {    a.add(file);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?