`

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;
	}

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

测试代码:

@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);
	}

 

1
7
分享到:
评论
1 楼 plawy 2014-05-26  
/*简单说明下,files就是你需要的那个指定类型文件的file对象list,
*你需要知道具体文件名或者文件路径或者文件大小等,自己通过File的API去取,比如:file.getName();file.getAbsolutePath()……
*files:不要跟我说你直接传null啊
*suffixs:文件后缀,注意全是小写,不包含点,比如:rar,text等,支持* 或者空list,后缀lsit为空我就认为是不过滤后缀
* path:任意路径
*/
public static List<File> getAllFiles(List<File> files,
List<String> suffixs, String path) {
File fileT = new File(path);
if (fileT.exists()) {
if (fileT.isDirectory()) {
for (File f : fileT.listFiles()) {
files = getAllFiles(files, suffixs, f.getAbsolutePath());
}
} else {
//被没后缀的文件坑过,所以加了无后缀文件判断
if (suffixs.size() == 0
|| suffixs.contains("*")
|| (fileT.getName().indexOf(".") != -1 && suffixs
.contains(fileT.getName().split("\\.")[1]
.toLowerCase()))) {
files.add(fileT);
}
}
}
return files;
}

相关推荐

    java中读取目录下指定的文件

    在Java编程语言中,读取目录下指定的文件是一项常见的任务,这主要涉及到文件I/O操作。Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现...

    JAVA获取FTP文件列表

    ### JAVA获取FTP文件列表知识点详解 #### 一、概述 在现代软件开发中,FTP(File Transfer Protocol)是一种广泛使用的协议,用于在网络上进行文件传输。本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`...

    java实现获取指定路径下指定格式的所有文件

    java实现 获取指定路径下 指定格式 的所有文件

    获取指定目录下的文件列表 获取指定目录下的所有文件名和路径(包括子目录)

    在编程领域,尤其是在文件系统操作相关的任务中,获取指定目录下的所有文件名和路径是一项基本且重要的工作。这个过程通常涉及到文件系统遍历,能够帮助开发者处理文件、组织数据或者进行备份等操作。本篇文章将深入...

    java 删除指定目录下的文件

    在Java编程语言中,删除指定目录下的文件是一个常见的任务,特别是在处理文件系统操作时。本文将深入探讨如何使用Java API来实现这一功能,主要关注`java.io`和`java.nio.file`这两个包中的相关类和方法。 首先,...

    Java获得某个路径下的所有文件列表,并写入指定文件

    在Java编程中,获取某个路径下所有文件列表并将其写入指定文件是一项常见的任务,尤其在文件管理和系统操作中非常实用。以下是如何实现这个功能的详细步骤和相关知识点。 首先,我们需要导入Java.io和java.nio.file...

    java读取项目中的文件(src目录下)

    在Java编程中,读取项目中的文件,特别是位于`src`目录下的文件,是一个常见的需求。这涉及到对项目结构的理解和使用Java I/O流的知识。`src`目录通常包含源代码文件,而运行时,这些文件会被编译并放置到类路径...

    遍历目录下所有的文件_遍历文件夹文件_java遍历目录下所有文件_

    在Java编程语言中,遍历一个目录下的所有文件和子目录是一项常见的任务,尤其是在处理文件系统操作时。这里我们将深入探讨如何使用Java API来实现这一功能,并解释相关的知识点。 首先,Java提供了`java.io.File`类...

    java统计某文件或目录下指定类型文件数量及行数

    可以统计指定目录下指定文件类型的文件数量及行数 此文件是用jdk1.5编译的.如果说您的jvm不相符.请联系qq:361606472

    java读取某个文件夹下的所有文件

    java读取某个文件夹下的所有文件 很不错可以看看 不要分

    java 提取目录下所有子目录的文件到指定位置

    java 提取目录下所有子目录的文件到指定位置 最近做视频,各个目录里都有图片,无法统一导入到视频编辑软件 写了个小程序,可以将指定各级目录下的文件拷贝到指定目录,并以文件夹名字加数字命名 如果文件夹上都...

    java删除指定文件夹下文件

    下面是一个简单的例子,展示如何删除指定文件夹下的所有文件,但保留空文件夹: ```java public class FileDeleter extends SimpleFileVisitor&lt;Path&gt; { @Override public FileVisitResult visitFile(Path file, ...

    超详细!java访问windows共享目录并下载文件

    - 在获取到共享目录的访问权限后,我们可以使用Java的I/O流来读取和下载文件。这通常涉及`FileInputStream`(用于读取远程文件)和`FileOutputStream`(用于写入本地文件)。`SmbUtils.java`中的某个方法可能负责从...

    Java检测指定FTP目录下的文件名

    本示例简单的实现了一个用Java代码来访问FTP,根据指定FTP的目录,访问这个路径下面的Ftp的文件,取出这个目录下面所有文件的文件名保存到一个Map中,最后根据系统时间和文件生成时间做对比,得出该日是否正确生成...

    java文件路径获取

    该方法用于获取指定路径下的资源,并返回表示该资源的`URL`对象。 - **参数**:`String path` - 指定资源的路径。 - **返回值**:`URL`对象,如果找不到资源则返回`null`。 - **特点**: - 如果`path`以 `/` 开头...

    获取指定目录下所有文件的绝对路径和文件名

    获取指定目录下所有文件的绝对路径和文件名

    Java获取文件或文件夹信息

    例如,如果你需要列出指定目录下的所有文件和子目录,可以使用`list()`或`listFiles()`方法: ```java File directory = new File("/path/to/directory"); String[] files = directory.list(); // 列出文件名 File...

    JAVA 从压缩包中提取文件

    2. **解压整个ZIP文件**: 提供选项让用户可以选择是否将整个ZIP文件解压到某个指定目录下。 3. **文件过滤**: 实现对ZIP文件中的文件进行过滤,例如只提取图片或文档等特定类型的文件。 #### 五、总结 该项目提供了...

    java上传本地文件到oss指定目录

    此外,还需要知道目标bucket的名称和对象(文件)在bucket中的路径,即指定目录。 接下来,我们来编写Java代码。首先,创建一个`OSSClient`实例,需要提供你的阿里云AccessKey信息以及OSS服务的endpoint。示例代码...

Global site tag (gtag.js) - Google Analytics