File类遍历目录

首先创建File工具类

package com.mm.util;

import java.io.File;
import java.io.IOException;

//列出File的一些常用操作比如过滤,遍历等操作
public class FileUtils {

	/**
	 * 列出指定目录下(包括其子目录)的所有文件
	 * @param file
	 */
	public static void listDirectory(File file) throws IOException{
		if(!file.exists()){
			throw new IllegalArgumentException("目录"+file+"不存在");
		}
		if(!file.isDirectory()){
			throw new IllegalArgumentException(file+"不是目录");
		}
		//返回的是字符串数组,直接子的名称,不包含子目录下的内容
		/*String[] filenames=file.list();
		for(String string : filenames){
			System.out.println(file+"\\"+string);
		}*/
		//如果需要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API
		File[] files=file.listFiles();//返回的是直接子目录(文件)的抽象
		if(files!=null && files.length>0){
			for (File file2 : files) {
				if(file2.isDirectory()){//如果是文件
					//递归
					listDirectory(file2);
				}else{
					System.out.println(file2);
				}
			}
		}
	}
}
调用工具类就不说了,大家都能看懂

FileUtils.listDirectory(File file);



好的,我可以帮你解答这个问题。 以下是 Java 程序的实现过程: 1. 导入所需的 ```java import java.io.File; import java.util.Scanner; ``` 2. 定义一个方法用于查找文件 ```java public static void searchFile(File directory, String fileName) { File[] files = directory.listFiles(); if (files != null) { for (File file : files) { if (file.isDirectory()) { searchFile(file, fileName); } else { if (file.getName().matches(fileName)) { System.out.println(file.getAbsolutePath()); } } } } } ``` 该方法接收一个目录和文件名作为参数,使用 File 的 listFiles() 方法获取目录下的所有文件和子目录,如果是目录则递归调用自身,如果是文件则判断文件名是否匹配传入的文件名,如果匹配则输出文件路径。 3. 主方法中调用查找文件的方法 ```java public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入目录路径:"); String directoryPath = scanner.nextLine(); System.out.print("请输入文件名:"); String fileName = scanner.nextLine(); File directory = new File(directoryPath); searchFile(directory, fileName); } ``` 该方法使用 Scanner 从控制台接收用户输入的目录路径和文件名,创建一个 File 对象表示目录,然后调用查找文件的方法。 完整的 Java 程序如下: ```java import java.io.File; import java.util.Scanner; public class FileSearcher { public static void searchFile(File directory, String fileName) { File[] files = directory.listFiles(); if (files != null) { for (File file : files) { if (file.isDirectory()) { searchFile(file, fileName); } else { if (file.getName().matches(fileName)) { System.out.println(file.getAbsolutePath()); } } } } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入目录路径:"); String directoryPath = scanner.nextLine(); System.out.print("请输入文件名:"); String fileName = scanner.nextLine(); File directory = new File(directoryPath); searchFile(directory, fileName); } } ``` 通过这个程序,你可以输入目录和文件名来查找文件,并输出匹配的文件路径。希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值