java 获取指定目录下的所有文件 博客分类: Java WebJava 指定目录获取所有文件过滤文件递归查询文件
程序员文章站
2024-02-24 19:46:40
...
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); }