当前位置:   article > 正文

java获取文件夹中所有文件_java获取文件夹内所有文件

java获取文件夹内所有文件


前言

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

        <!--  long3  -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

一、不包含文件夹


	/**
	 *  <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;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

二、包含文件夹

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


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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

总结

本文介绍了java获取文件夹中所有文件,记录了不包含文件夹和包含文件夹两需求的方法。其中大部分代码相同,如若采用,请根据需要自行重构。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/437858
推荐阅读
相关标签
  

闽ICP备14008679号