java获取文件夹中所有文件

48 篇文章 1 订阅
44 篇文章 0 订阅


前言

文章记录了java获取指定文件夹所有文件的方法,其中用到的工具类StringUtils 源自org.apache.commons.lang,其maven引用如下:

        <!--  long3  -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

一、不包含文件夹


	/**
	 *  <h1>获取指定文件夹下所有文件,不含文件夹</h1>
	 * @param dirFilePath 文件夹路径
	 * @return
	 */
	public static List<File> getAllFile(String dirFilePath){
		if(StringUtils.isBlank(dirFilePath))
			return null;
		return getAllFile(new File(dirFilePath));
	}
	
	/**
	 *  <h1>获取指定文件夹下所有文件,不含文件夹</h1>
	 * @param dirFile 文件夹
	 * @return
	 */
	public static List<File> getAllFile(File dirFile){
		// 如果文件夹不存在或着不是文件夹,则返回 null
		if(Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile()) 
			return null;
		
		File[] childrenFiles =  dirFile.listFiles();
		if(Objects.isNull(childrenFiles) || childrenFiles.length == 0) 
			return null;

		List<File> files = new ArrayList<>();
		for(File childFile : childrenFiles) {
			
			// 如果时文件,直接添加到结果集合
			if(childFile.isFile()) {
				files.add(childFile);
			}else {
				// 如果是文件夹,则将其内部文件添加进结果集合
				List<File> cFiles =  getAllFile(childFile);
				if(Objects.isNull(cFiles) || cFiles.isEmpty()) continue;
				files.addAll(cFiles);
			}
			
		}
		
		return files;
	}

二、包含文件夹

一中的代码是不包含文件夹的,若要包含文件夹,很容易修改一得到。


	/**
	 *  <h1>获取指定文件夹下所有文件,含文件夹</h1>
	 * @param dirFilePath 文件夹路径
	 * @return
	 */
	public static List<File> getAllFile(String dirFilePath){
		if(StringUtils.isBlank(dirFilePath))
			return null;
		return getAllFile(new File(dirFilePath));
	}
	
	/**
	 *  <h1>获取指定文件夹下所有文件,不含文件夹</h1>
	 * @param dirFile 文件夹
	 * @return
	 */
	public static List<File> getAllFile(File dirFile){
		// 如果文件夹不存在或着不是文件夹,则返回 null
		if(Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile()) 
			return null;
		
		File[] childrenFiles =  dirFile.listFiles();
		if(Objects.isNull(childrenFiles) || childrenFiles.length == 0) 
			return null;

		List<File> files = new ArrayList<>();
		for(File childFile : childrenFiles) {
			
			// 如果时文件,直接添加到结果集合
			if(childFile.isFile()) {
				files.add(childFile);
			}else {
				// 如果是文件夹。则先将其添加到结果集合,再将其内部文件添加进结果集合。
				files.addAll(childFile); 
				List<File> cFiles =  getAllFile(childFile);
				if(Objects.isNull(cFiles) || cFiles.isEmpty()) continue;
				files.addAll(cFiles);
			}
			
		}
		
		return files;
	}

总结

本文介绍了java获取文件夹中所有文件,记录了不包含文件夹和包含文件夹两需求的方法。其中大部分代码相同,如若采用,请根据需要自行重构。
### 回答1: 你可以使用Java的File类来获取文件夹所有文件的名称。以下是一个示例代码: ```java import java.io.File; public class ListFiles { public static void main(String[] args) { File folder = new File("path/to/folder"); File[] files = folder.listFiles(); for (File file : files) { if (file.isFile()) { System.out.println(file.getName()); } } } } ``` 在代码,我们首先创建一个File对象,指向要查找的文件夹。然后调用listFiles()方法获取文件夹的所有文件和子文件夹。接着对每个文件进行判断,如果是文件则输出文件名。 ### 回答2: 在Java,可以使用File类来获取文件夹的所有文件的名称。具体的步骤如下: 1. 首先,创建一个代表文件夹的File对象,指定文件夹的路径。例如,可以使用`File folder = new File("文件夹路径")`来创建一个File对象,其"文件夹路径"是文件夹的实际路径。 2. 然后,使用File类的`listFiles()`方法来获取文件夹的所有文件对象。这个方法会返回一个文件数组,其包含了文件夹的所有文件对象。例如,可以使用`File[] files = folder.listFiles()`来获取文件夹的所有文件。 3. 接下来,遍历文件数组,获取每个文件的名称。可以使用File类的`getName()`方法来获取文件的名称。例如,可以使用`String fileName = file.getName()`来获取文件的名称,其file是文件数组的一个文件对象。 4. 最后,可以将文件名称输出到控制台或保存到一个字符串数组,以便进一步处理。 以下是一个示例代码,演示了如何获取文件夹所有文件的名称: ```java import java.io.File; public class Main { public static void main(String[] args) { // 创建代表文件夹的File对象 File folder = new File("文件夹路径"); // 获取文件夹的所有文件对象 File[] files = folder.listFiles(); // 遍历文件数组,获取每个文件的名称 for (File file : files) { // 获取文件名称 String fileName = file.getName(); // 输出文件名称 System.out.println(fileName); } } } ``` 在使用这段代码时,需要将"文件夹路径"替换为实际的文件夹路径。执行代码后,控制台会输出文件夹所有文件的名称。 ### 回答3: 在Java,您可以使用File类的list()方法来获取文件夹所有文件的名称。 首先,您需要创建一个File对象,表示您要获取文件夹的路径。然后,使用list()方法来获取文件夹所有文件的名称,该方法将返回一个字符串数组,包含文件夹所有文件的名称。 下面是一个示例代码: ``` import java.io.File; public class Main { public static void main(String[] args) { // 文件夹路径 String folderPath = "path/to/folder"; // 创建File对象 File folder = new File(folderPath); // 检查文件夹是否存在 if (folder.exists() && folder.isDirectory()) { // 获取文件夹所有文件的名称 String[] fileNames = folder.list(); // 打印每个文件的名称 for (String fileName : fileNames) { System.out.println(fileName); } } else { System.out.println("文件夹不存在或者不是一个文件夹"); } } } ``` 在上面的代码,您需要将文件夹的路径替换为您自己的文件夹路径。然后,通过调用list()方法,该方法将返回一个字符串数组,其包含文件夹所有文件的名称。接下来,您可以使用for循环来打印每个文件的名称。请确保在运行代码之前,文件夹路径是存在的,并且确保您具有读取文件夹的权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值