Java實(shí)現(xiàn)指定目錄下的文件查找詳解
Java實(shí)現(xiàn)指定目錄下的文件查找
入門Java實(shí)現(xiàn)文件的查找功能較為簡單,主要有以下兩種:
1.給出文件名,查找目錄及其子目錄中是否存在
2.給出后綴名,查找目錄及其子目錄中相關(guān)的文件
題型一:
題目:在指定目錄下查找一個文件,如果目錄或子目錄下有查找的文件,返回文件所在的目錄,否則輸出 “當(dāng)前目錄下沒有此文件”。
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\\實(shí)驗(yàn)七 數(shù)據(jù)"); //確定要查找的目錄dir; boolean flag=false; //flag來確定是否查到文件; 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是目錄時,則重新調(diào)用function函數(shù); { 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; } } }
下面是運(yùn)行結(jié)果:
題型二:
判斷指定目錄及其子目錄下是否有后綴名為.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判斷有沒有相關(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為目錄時,調(diào)用function函數(shù)(更新了絕對路徑); { 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文件"); } }
下面是運(yùn)行的結(jié)果:
到此這篇關(guān)于Java實(shí)現(xiàn)指定目錄下的文件查找詳解的文章就介紹到這了,更多相關(guān)Java指定目錄文件查找內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合Milvus的實(shí)現(xiàn)
本文主要介紹了SpringBoot整合Milvus的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Java中數(shù)學(xué)相關(guān)類的使用教程
Java是一種廣泛使用的編程語言,它提供了許多數(shù)學(xué)運(yùn)算的函數(shù)和方法,使得開發(fā)者可以輕松地進(jìn)行各種數(shù)學(xué)計(jì)算,下面這篇文章主要給大家介紹了關(guān)于Java中數(shù)學(xué)相關(guān)類使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05基于SpringBoot的Dubbo泛化調(diào)用的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于SpringBoot的Dubbo泛化調(diào)用的實(shí)現(xiàn),從泛化調(diào)用實(shí)現(xiàn)的過程來看,我們可以對自己提供所有服務(wù)進(jìn)行測試,不需要引入調(diào)用的接口,減少代碼的侵入,需要的朋友可以參考下2022-04-04淺談java Iterator.remove()方法的用法(詳解)
下面小編就為大家?guī)硪黄獪\談java Iterator.remove()方法的用法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01