JavaSE 文件递归之删除&获取文件夹文件夹中全部的以.jpg的文件的绝对路径

时间:2022-04-06 12:29:51

1.递归删除文件

假设一个文件夹以下还有子文件夹,进行删除的话会 报错,这个时候要使用递归的方式来删除这个文件文件夹中的全部文件以及文件夹

package cn.itcast.digui;

import java.io.File;

/**
 * 递归删除demo目录中全部文件包含目录
 * 分析:
 * A:封装目录
 * B:获取改目录下的全部文件或者目录
 * C:遍历改file数组,得到每个File对象
 * D:推断该file对象是都是目录
 * 	是:回到B
 *      否:删除
 * @author Administrator
 *
 */
public class GiGuiDelete {
	public static void main(String[] args) {
		File srcFile=new File("demo");
		deleteFolder(srcFile);
	}
	private static void deleteFolder(File srcFile) {
		File[] files = srcFile.listFiles();
		for(File f:files){
			if(f.isDirectory()){
				deleteFolder(f);//递归调用
			}else{
				System.out.println(f.getName()+"---"+f.delete());//删除文件
			}
		}
		System.out.println(srcFile.getName()+"---"+srcFile.delete());//删除空的目录
	}
}
对于測试结果,能够进行debug測试,这里我就不进行測试了!

2.获取文件夹文件夹中全部的以.jpg的文件的绝对路径

package cn.itcast_03;

import java.io.File;

/*
 * 需求:请大家把E:\JavaSE文件夹下全部的java结尾的文件的绝对路径给输出在控制台。

* * 分析: * A:封装文件夹 * B:获取该文件夹下全部的文件或者文件夹的File数组 * C:遍历该File数组。得到每个File对象 * D:推断该File对象是否是文件夹 * 是:回到B * 否:继续推断是否以.java结尾 * 是:就输出该文件的绝对路径 * 否:不搭理它 */ public class FilePathDemo { public static void main(String[] args) { // 封装文件夹 File srcFolder = new File("E:\\JavaSE"); // 递归功能实现 getAllJavaFilePaths(srcFolder); } private static void getAllJavaFilePaths(File srcFolder) { // 获取该文件夹下全部的文件或者文件夹的File数组 File[] fileArray = srcFolder.listFiles(); // 遍历该File数组,得到每个File对象 for (File file : fileArray) { // 推断该File对象是否是文件夹 if (file.isDirectory()) { getAllJavaFilePaths(file); } else { // 继续推断是否以.java结尾 if (file.getName().endsWith(".java")) { // 就输出该文件的绝对路径 System.out.println(file.getAbsolutePath()); } } } } }

对于測试大家能够使用debug模式进行查看