輸出某個目錄下的所有檔案和資料夾,包括子資料夾中的內容
阿新 • • 發佈:2019-01-09
IO流中File類中有個listFiles() 方法,它可以返回一個抽象路徑名陣列,這些路徑名錶示此抽象路徑名錶示的目錄中的檔案。此時用這個方法來講檔案中的所有路徑儲存在一個數組中,在去判斷這個陣列中哪些路徑是資料夾,繼續用listFiles() 方法來遞迴運算。
File中有兩個方法可以去判斷一個是資料夾還是檔案:
boolean isDirectory()
測試此抽象路徑名錶示的檔案是否是一個目錄。
boolean isFile()
測試此抽象路徑名錶示的檔案是否是一個標準檔案。
演示:isDirectory()方法判斷是否為資料夾
import java.io.File;
import java.io.FilenameFilter;
/**
* 列印某個目錄下的所有檔案和資料夾(包括子資料夾中的內容)
*
* @author wql
*
*/
public class Num1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("./src/");
method(file);
}
private static void method(File file) {
File[] list = file.listFiles();
for (int i = 0; i < list.length; i++) {
if (!list[i].isDirectory()) { //isDirectory()方法判斷是否為資料夾
System.out.println(list[i].getName());
} else {
System.out.println(list[i].getName()+ "..........資料夾.........." );
method(list[i]); //遞迴呼叫
}
}
}
}
演示:isFile() 方法判斷是否為檔案
import java.io.File;
import java.io.FilenameFilter;
/**
* 列印某個目錄下的所有檔案和資料夾(包括子資料夾中的內容)
*
* @author wql
*
*/
public class CopyOfNum1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("./src/");
method(file);
}
public static void method(File file){
File[] list=file.listFiles();
for (int i = 0; i < list.length; i++) {
if(list[i].isFile()){ //isFile() 方法判斷是否為檔案
System.out.println(list[i].getName());
}else{
System.out.println(list[i].getName()+"........資料夾..........");
method(list[i]); //遞迴
}
}
}
}
執行: