如何在 java 中搜索目錄中的檔案
List() 方法是 File 類的方法,它返回一個 String 陣列,包含當前 (File) 物件表示的路徑中所有檔案和目錄的名稱。
為了搜尋檔案,你需要使用 equals() 方法比較目錄中每個檔案的檔名和所需檔案的名稱。
示例
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;
public class Example {
public static void main(String[] argv) throws Exception {
System.out.println("Enter the directory path: ");
Scanner sc = new Scanner(System.in);
String pathStr = sc.next();
System.out.println("Enter the desired file name: ");
String file = sc.next();
System.out.println(file);
File dir = new File(pathStr);
String[] list = dir.list();
System.out.println(Arrays.toString(list));
boolean flag = false;
for (int i = 0; i < list.length; i++) {
if(file.equals(list[i])){
flag = true;
}
}
if(flag){
System.out.println("File Found");
}else{
System.out.println("File Not Found");
}
}
}輸出
Enter the directory path: D:\ExampleDirectory Enter the desired file name: demo2.pdf demo2.pdf [demo1.pdf, demo2.pdf, sample directory1, sample directory2, sample directory3, sample directory4, sample_jpeg1.jpg, sample_jpeg2.jpg, test1.docx, test2.docx] File Found
String[] list(FilenameFilter filter) 方法是 File 類的另一個方法,它返回一個 String 陣列,包含當前 (File) 物件表示的路徑中所有檔案和目錄的名稱。但是,返回的陣列包含根據指定過濾器進行篩選的檔名。FilenameFilter 是 Java 中的介面,只有一個方法。
accept(File dir, String name)
為了搜尋一個檔名,你需要實現一個 FilenameFilter 來匹配所需檔案的檔名。
示例
import java.io.File;
import java.io.FilenameFilter;
public class Example {
public static void main(String[] argv) throws Exception {
File dir = new File("D:\ExampleDirectory");
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.equalsIgnoreCase("demo1.pdf");
}
};
String[] files = dir.list(filter);
if (files == null) {
System.out.println("File Not Found");
}else {
System.out.println("File Found");
}
}
}輸出
File Found
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP