Java实现指定目录下的文件查找

简介: Java实现指定目录下的文件查找

Java实现指定目录下的文件查找

入门Java实现文件的查找功能较为简单,主要有以下两种:

1.给出文件名,查找目录及其子目录中是否存在
2.给出后缀名,查找目录及其子目录中相关的文件

题型一:

题目:在指定目录下查找一个文件,如果目录或子目录下有查找的文件,返回文件所在的目录,否则输出 “当前目录下没有此文件”。

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

下面是运行结果:

题型二:

*判断指定目录及其子目录下是否有后缀名为.java和.jpg的文件,如果有,就输出该文件名称和所在目录路径,如果没有,输出“*目录下没有.java和.jpg文件”。

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文件");
  }
}

下面是运行的结果:

相关文章
|
21小时前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 0
|
22小时前
|
存储 缓存 安全
Java 中 IO 流、File文件
Java 中 IO 流、File文件
|
22小时前
|
Java Unix Windows
|
21小时前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
57 3
|
22小时前
|
Java ice
【Java开发指南 | 第二十一篇】Java流之文件
【Java开发指南 | 第二十一篇】Java流之文件
9 0
|
21小时前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
21小时前
|
移动开发 前端开发 Java
STS里的java 工程项目名称修改和目录设置成源代码
STS里的java 工程项目名称修改和目录设置成源代码
|
21小时前
|
Java 开发者
Java一分钟之-Java IO流:文件读写基础
【5月更文挑战第10天】本文介绍了Java IO流在文件读写中的应用,包括`FileInputStream`和`FileOutputStream`用于字节流操作,`BufferedReader`和`PrintWriter`用于字符流。通过代码示例展示了如何读取和写入文件,强调了常见问题如未关闭流、文件路径、编码、权限和异常处理,并提供了追加写入与读取的示例。理解这些基础知识和注意事项能帮助开发者编写更可靠的程序。
17 0
|
21小时前
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
15 0
|
22小时前
|
Arthas 安全 Java
java服务报错 FileNotFoundException:打开的文件过多
java服务报错 FileNotFoundException:打开的文件过多
16 0