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

下面是运行的结果:

相关文章
|
5月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
242 1
|
8月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
220 0
|
8月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
557 0
|
8月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
373 14
|
9月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
577 5
|
9月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
483 0
|
12月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
422 4
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
544 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
存储 算法 Java
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。