標籤:存在 ntb ext dir public 今天 exist files file
輸入路徑尋找該路徑下的指定檔案類型的檔案
代碼思路:
想要迴圈遍曆檔案夾下所有子檔案夾,就要用到遞迴。
首先判斷路徑是否存在:
是:擷取檔案
判斷是否檔案夾:
是:調用自身,繼續擷取子檔案夾下內容
否:判斷檔案尾碼,符合則輸出
否:輸出提示
1 package com.hanqi.maya.util; 2 3 import java.io.File; 4 import java.util.Scanner; 5 6 public class TestGuolv { 7 public static void main(String[] args) { 8 Scanner sc=new Scanner(System.in); 9 System.out.println("請輸入要尋找的路徑");10 String s=sc.nextLine();11 File file =new File(s);12 filesum(file,1);13 }14 public static void filesum(File f,int len){15 16 if(f.exists()){//判斷路徑是否存在17 File[] files=f.listFiles(); //擷取路徑下的檔案名稱18 for(File fi:files){ //迴圈輸出檔案名19 if(fi.isDirectory()){ //判斷是否檔案夾20 printBlank(len); 21 System.out.println(fi.getName()+"檔案夾");22 filesum(fi,len+1); //繼續調用自身23 }else{24 printBlank(len); //輸出空格25 if(fi.getName().endsWith(".java")){//如果是檔案則 判斷是否“.java”尾碼,是則輸出26 System.out.println(fi.getName());27 } 28 }29 }30 }else{31 System.out.println("檔案不存在!!!");32 }33 }34 35 public static void printBlank(int len){36 for (int i = 0; i < len; i++) {//輸出. 以區分檔案夾層次37 System.out.print(". ");38 }39 40 }41 }
總結與問題:
昨天學到輸出檔案夾下所有檔案,今天稍作改動變成了找出檔案夾下指定尾碼的檔案。
又因為輸出的時候沒有層次,所以寫了個迴圈用來在輸出的檔案前面加空格以便層次分明,再後來發現空格對漢字的層次不夠分明,遇到漢字會縮排幾個空格,但是用符號就不會這樣。
還有如何控制指定尾碼名的問題沒有解決。
路漫漫其修遠兮。
Java實現簡單檔案過濾器