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;
}
说明:上述方法采用了递归,所以包含子目录下的子目录中的文件。。。
测试代码:
@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
过滤前缀(只是获取指定目录下的文件,没有递归):
/***
*
* @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);
}
过滤后缀名(只是获取指定目录下的文件,没有递归):
/***
*
* @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);
}