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

java 获取指定目录下的所有文件

2014-05-10 00:00 483 查看
摘要: java 获取指定目录下的所有文件

java ,如何获取指定目录下的所有文件呢?

看代码:

Java代码



/***

* 获取指定目录下的所有的文件(不包括文件夹),采用了递归

*

* @param obj

* @return

*/

public static ArrayList<File> getListFiles(Object obj) {

File directory = null;

if (obj instanceof File) {

directory = (File) obj;

} else {

directory = new File(obj.toString());

}

ArrayList<File> files = new ArrayList<File>();

if (directory.isFile()) {

files.add(directory);

return files;

} else if (directory.isDirectory()) {

File[] fileArr = directory.listFiles();

for (int i = 0; i < fileArr.length; i++) {

File fileOne = fileArr[i];

files.addAll(getListFiles(fileOne));

}

}

return files;

}

说明:上述方法采用了递归,所以包含子目录下的子目录中的文件。。。

测试代码:

Java代码



@Test

public void test_getListFiles(){

ArrayList<File> files=FileUtils.getListFiles("d:\\Temp\\a\\a");

SystemUtil.printFilesFilePath(files);

}

输出结果:

d:\Temp\a\a\divided\merged\oracle学习笔记.doc

d:\Temp\a\a\divided\oracle学习笔记.doc_1_3kldv

d:\Temp\a\a\divided\oracle学习笔记.doc_2_3kldv

d:\Temp\a\a\divided\oracle学习笔记.doc_3_3kldv

d:\Temp\a\a\oracle学习笔记.doc

过滤前缀(只是获取指定目录下的文件,没有递归):

Java代码



/***

*

* @param path

* @param prefixStr

* :前缀名

* @return

*/

public static File[] getFilesByPathPrefix(File path, final String prefixStr) {

File[] fileArr = path.listFiles(new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

// System.out.println("prefixStr:"+prefixStr);

if ((ValueWidget.isNullOrEmpty(prefixStr) || (dir.isDirectory() && name

.startsWith(prefixStr)))) {

return true;

} else {

return false;

}

}

});

return fileArr;

}

/***

* 前缀名

*

* @param pathStr

* @param prefixStr

* @return

*/

public static File[] getFilesByPathAndPrefix(String pathStr,

final String prefixStr) {

File path = new File(pathStr);

return getFilesByPathPrefix(path, prefixStr);

}

过滤后缀名(只是获取指定目录下的文件,没有递归):

Java代码



/***

*

* @param path

* @param prefixStr

* :后缀名

* @return

*/

public static File[] getFilesByPathAndSuffix(File path,

final String sufixStr) {

File[] fileArr = path.listFiles(new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

// System.out.println("prefixStr:"+prefixStr);

if ((ValueWidget.isNullOrEmpty(sufixStr) || (dir.isDirectory() && name

.endsWith(sufixStr)))) {

return true;

} else {

return false;

}

}

});

return fileArr;

}

/***

* 后缀名

*

* @param pathStr

* @param sufixStr

* @return

*/

public static File[] getFilesByPathAndSuffix(String pathStr,

final String sufixStr) {

File path = new File(pathStr);

return getFilesByPathAndSuffix(path, sufixStr);

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