Java實(shí)現(xiàn)指定目錄下的文件查找詳解
Java實(shí)現(xiàn)指定目錄下的文件查找
入門(mén)Java實(shí)現(xiàn)文件的查找功能較為簡(jiǎn)單,主要有以下兩種:
1.給出文件名,查找目錄及其子目錄中是否存在
2.給出后綴名,查找目錄及其子目錄中相關(guān)的文件
題型一:
題目:在指定目錄下查找一個(gè)文件,如果目錄或子目錄下有查找的文件,返回文件所在的目錄,否則輸出 “當(dāng)前目錄下沒(méi)有此文件”。
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("請(qǐng)輸入要查找的文件名:");
String filename=in.nextLine(); //讀取要查找的文件名稱filename;
File dir=new File("D:\\desktop\\實(shí)驗(yàn)七 數(shù)據(jù)"); //確定要查找的目錄dir;
boolean flag=false; //flag來(lái)確定是否查到文件;
function(filename,dir,flag); //function函數(shù)遞歸實(shí)現(xiàn);
}
static void function(String filename,File dir,boolean flag)
{
File[]files=dir.listFiles();
for(File file:files)
{
if(file.isDirectory()) //file是目錄時(shí),則重新調(diào)用function函數(shù);
{
function(filename,file.getAbsoluteFile(),flag);
}
if(file.isFile() && filename.equals(file.getName())) //file時(shí)文件且文件名相同時(shí),輸出;
{
flag=true;
System.out.println("要查找的文件路徑為:"+file.getAbsolutePath());
break;
}
}
if(flag==true) //判斷有沒(méi)有找到過(guò)文件;
return;
else
{
System.out.print(dir.getName()+"文件夾下沒(méi)有找到此文件");
return;
}
}
}
下面是運(yùn)行結(jié)果:



題型二:
判斷指定目錄及其子目錄下是否有后綴名為.java和.jpg的文件,如果有,就輸出該文件名稱和所在目錄路徑,如果沒(méi)有,輸出“*目錄下沒(méi)有.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判斷有沒(méi)有相關(guān)文件;
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為目錄時(shí),調(diào)用function函數(shù)(更新了絕對(duì)路徑);
{
function(m.getAbsolutePath(),m.getAbsoluteFile(),flag);
}
if(m.isFile() ) //m為文件時(shí)
{
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());//輸出文件的絕對(duì)路徑;
flag=true;
}
}
}
if(flag==true)
return;
else
System.out.println(Filename+"下沒(méi)有.java和.jpg文件");
}
}
下面是運(yùn)行的結(jié)果:

到此這篇關(guān)于Java實(shí)現(xiàn)指定目錄下的文件查找詳解的文章就介紹到這了,更多相關(guān)Java指定目錄文件查找內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合Milvus的實(shí)現(xiàn)
本文主要介紹了SpringBoot整合Milvus的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Java中數(shù)學(xué)相關(guān)類(lèi)的使用教程
Java是一種廣泛使用的編程語(yǔ)言,它提供了許多數(shù)學(xué)運(yùn)算的函數(shù)和方法,使得開(kāi)發(fā)者可以輕松地進(jìn)行各種數(shù)學(xué)計(jì)算,下面這篇文章主要給大家介紹了關(guān)于Java中數(shù)學(xué)相關(guān)類(lèi)使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
基于SpringBoot的Dubbo泛化調(diào)用的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于SpringBoot的Dubbo泛化調(diào)用的實(shí)現(xiàn),從泛化調(diào)用實(shí)現(xiàn)的過(guò)程來(lái)看,我們可以對(duì)自己提供所有服務(wù)進(jìn)行測(cè)試,不需要引入調(diào)用的接口,減少代碼的侵入,需要的朋友可以參考下2022-04-04
淺談java Iterator.remove()方法的用法(詳解)
下面小編就為大家?guī)?lái)一篇淺談java Iterator.remove()方法的用法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01

