Java implementa la búsqueda de archivos en un directorio específico

Java implementa la búsqueda de archivos en un directorio específico

La función de búsqueda del archivo de implementación Java de entrada es relativamente simple, principalmente en los siguientes dos tipos:
1. Dar el nombre del archivo, encontrar si el directorio y sus subdirectorios existen
2. Dar el nombre del sufijo, encontrar los archivos relacionados en el directorio y sus subdirectorios

Tipo de pregunta 1:
Pregunta: busque un archivo en el directorio especificado, si hay un archivo que se encuentra en el directorio o subdirectorio, devuelva el directorio donde se encuentra el archivo, de lo contrario, emita "No hay tal archivo en el directorio actual" .

package hello;
import java.io.File;
import java.util.*;
public class 第七周第二题 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		System.out.println("请输入要查找的文件名:");
		String filename=in.nextLine();                   //读取要查找的文件名称filename;
		File dir=new File("D:\\desktop\\实验七 数据");      //确定要查找的目录dir;
		boolean flag=false;                              //flag来确定是否查到文件;
		function(filename,dir,flag);                     //function函数递归实现;
		
	}
	static void function(String filename,File dir,boolean flag)
	{
		
		File[]files=dir.listFiles();
		for(File file:files)
		{
			if(file.isDirectory())                      //file是目录时,则重新调用function函数;
				{
					function(filename,file.getAbsoluteFile(),flag);
				}
			if(file.isFile() && filename.equals(file.getName()))  //file时文件且文件名相同时,输出;
			{			
					flag=true;
					System.out.println("要查找的文件路径为:"+file.getAbsolutePath());
					break;
			}
		} 
		if(flag==true)                                 //判断有没有找到过文件;
			return; 
		else
		{
			System.out.print(dir.getName()+"文件夹下没有找到此文件");
			return;
		}
	}

}

El siguiente es el resultado de la ejecución:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Tipo de pregunta 2:
* Determine si hay archivos con los sufijos .java y .jpg en el directorio especificado y sus subdirectorios, si es así, genere el nombre del archivo y la ruta del directorio, si no, genere "* There no hay archivos .java y .jpg en el directorio".

package hello;
import java.util.*;
import java.io.*;
public class 第八周第一题 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("指定的目录为:D:\\desktop");
		String Filename="D:\\desktop";                        //Filename为指定地址;
		File file=new File(Filename);
		boolean flag=false;                                   //flag判断有没有相关文件;
		function(Filename,file,flag);
	}
	static void function(String Filename,File file,boolean flag)
	{
		File[]files=file.listFiles();
		for(File m:files)
		{
			if(m.isDirectory())                             //m为目录时,调用function函数(更新了绝对路径);
			{
				function(m.getAbsolutePath(),m.getAbsoluteFile(),flag);
			}
			if(m.isFile() )                                //m为文件时
			{
				String name=m.getName();
				String houzhui=name.lastIndexOf(".")==-1 ? "" : name.substring(name.lastIndexOf(".")+1);//读取其后缀(java还是jpg)
				if("java".equals(houzhui)||"jpg".equals(houzhui))//判断后缀是不是java或jpg;
				{
					System.out.println("文件"+name+"所在的目录为:"+m.getAbsolutePath());//输出文件的绝对路径;
					flag=true;
				}
			}
		}
		if(flag==true)       
			return;
		else
			System.out.println(Filename+"下没有.java和.jpg文件");
	}
}

Aquí está el resultado de la ejecución:
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/ws15168689087/article/details/110233996
Recomendado
Clasificación