您的位置:首页 > 编程语言 > Java开发

Java遍历指定目录下的所有文件

2014-08-22 23:27 627 查看
初级Java面试经常会遇到写一个递归遍历指定文件夹下的所有文件,今天闲来无事,看了些例子,自己整理一下。希望可以帮助到初学者,顺便也算自己的一个笔记,方便以后查阅。

package files;

import java.io.File;

public class RecursionFiledir {

public static void main(String[] args) throws Exception {
File file = new File("D:"+File.separator);   // 指定操作目录
showFileList(file);         // 列出给定目录中的全部内容
showAllFilesSimple(file);   // 递归显示指定目录的全部内容(简单版)
showAllFilesFull(file);     // 递归显示指定目录的全部内容(完整版)
printFile(file, 0);         // 遍历指定文件夹下的所有文件
}

//列出指定文件夹下的全部内容
public static void showFileList(File file) {
File files[] = file.listFiles();   // 列出给定目录中的全部内容(带路径)
for (int i=0; i<files.length; i++) {
System.out.println(files[i]);
}
}

/**
* 递归显示指定目录的全部内容(简单版)
* @param file
* @throws Exception
*/
public static void showAllFilesSimple(File file) throws Exception {
if (file != null) {     // 判断对象是否为空
File[] files = file.listFiles();
for (int i=0; i<files.length; i++) {
System.out.println(files[i].getAbsolutePath());
if (files[i].isDirectory()) {
showAllFilesSimple(files[i]);
}
}
}
}

/**
* 递归显示指定目录的全部内容(完整版)
* @param file
* @throws Exception
*/
public static void showAllFilesFull(File file) throws Exception {
if (file != null) {    // 判断对象是否为空
if (file.isDirectory()) {    // 判断如果是目录
File files[] = file.listFiles();  // 列出全部的文件
if (files != null) {    // 判断此目录能否列出
for(int i=0; i<files.length; i++) {
showAllFilesFull(files[i]);  // 此处路径有可能是目录,所以继续执行该方法
}
}
} else {
System.out.println(file);    // 显示出路径
}
}
}

/**
* 遍历指定文件夹下的所有文件
* @param file  传入的目录
* @param level 等级
*/
public static void printFile(File file, int level) {
for (int i = 0; i<level; i++) {
System.out.print("-");
}
System.out.println(file.getName());

if (file.isDirectory()) {
File[] files = file.listFiles();
for (File temp : files) {
printFile(temp, level+1);
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: