获取文件列表:
package com.mth.listRoots;
import java.io.File;
import java.io.FilenameFilter;
/**
*
* @ClassName: ListRootsTest
* @Description: listRoots
* @author mth 75100313@qq.com
* @date 2014-2-19 上午08:30:24
* String[] list()
* String[] list(FilenameFilter filter)
* File[] listFiles()
* static File[] listRoots()
*/
public class FileListTest {
public static void listRoots() {
File file = new File("");
File[] farray = file.listRoots();
for (File file2 : farray) {
System.out.println(file2);
}
}
/**
* 调用list方法的file对象必须是一个目录 该目录必须存在
*/
public static void list_1() {
File file = new File("e:/");
String[] farray = file.list();
for (String file2 : farray) {
System.out.println(file2);
}
}
/*
* list(FilenameFilter filter)
* 返回指定目录下面指定的文件或目录
*/
public static void list_2() {
//要被过滤的目录
File file = new File("e:/");
String[] farray = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// System.out.println("dir:"+dir+" name:"+name);
return name.endsWith(".txt");
}
});
for (String file2 : farray) {
System.out.println(file2);
}
}
public static void main(String[] args) {
// listRoots();
list_2();
}
}
package com.mth.listallfile;
import java.io.File;
/**
*
* @Title: listAllFile
* @Description: 递归遍历目录下所有文件(目录下的目录)
* 因为目录中还有目录 只要使用同一个列出目录功能的函数完成即可
* 也就是函数调用自身 这种表现形式或者编程手法 叫做递归
* 递归要注意的几点:
* 1.限定结束条件
* 2.注意递归的次数 尽量避免内存溢出
* @param @param file 设定文件
* @return void 返回类型
* @throws
*/
public class ListAllFile {
/*
* 递归
* */
public static void listAllFile(File file) {
File[] array = file.listFiles();
for (File file2 : array) {
if (file2.isDirectory()) {
//输出目录
System.out.println(file2);
listAllFile(file2);
} else {
System.out.println(file2);
}
}
}
public static void main(String[] args) {
File file = new File("E:/游戏/游戏/软件");
listAllFile(file);
}
}