Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะรับรายการไฟล์ jpg ในไดเร็กทอรีใน Java ได้อย่างไร?


รายการ String[] (ตัวกรองชื่อไฟล์) เมธอดของคลาสไฟล์ส่งคืนอาร์เรย์สตริงที่มีชื่อของไฟล์และไดเร็กทอรีทั้งหมดในพาธที่แสดงโดยอ็อบเจ็กต์ (ไฟล์) ปัจจุบัน แต่อาร์เรย์ที่ปรับใหม่มีชื่อไฟล์ซึ่งถูกกรองตามตัวกรองที่ระบุ ตัวกรองชื่อไฟล์ เป็นอินเทอร์เฟซใน Java ด้วยวิธีเดียว

ยอมรับ (ไฟล์ dir ชื่อสตริง)

ในการรับชื่อไฟล์ตามนามสกุล ให้ใช้อินเทอร์เฟซนี้และส่งผ่านอ็อบเจ็กต์ไปยังเมธอด list() ที่ระบุข้างต้นของคลาสไฟล์

สมมติว่าเรามีโฟลเดอร์ชื่อ ExampleDirectory ในไดเรกทอรี D ด้วย 7 ไฟล์และ 2 ไดเร็กทอรีเป็น −

จะรับรายการไฟล์ jpg ในไดเร็กทอรีใน Java ได้อย่างไร?

ตัวอย่าง

โปรแกรม Java ต่อไปนี้พิมพ์ชื่อของไฟล์ข้อความและไฟล์ jpeg ในพาธ D:\\ExampleDirectory แยกกัน

import java.io.File;import java.io.FilenameFilter;import java.io.IOException;public class Sample { public static void main(String args[]) พ่น IOException {// การสร้างวัตถุไฟล์สำหรับไฟล์ไดเร็กทอรี directoryPath =ไฟล์ใหม่ ("D:\\ExampleDirectory"); // การสร้างตัวกรองสำหรับไฟล์ jpg FilenameFilter jpgFilefilter =ใหม่ FilenameFilter () { บูลีนสาธารณะที่ยอมรับ (ไฟล์ dir, ชื่อสตริง) { สตริงตัวพิมพ์เล็ก =name.toLowerCase (); if (lowercaseName.endsWith(".jpg")) { คืนค่าจริง; } อื่น ๆ { คืนค่าเท็จ; } } }; สตริง imageFilesList[] =directoryPath.list (jpgFilefilter); System.out.println("รายการไฟล์ jpeg ในไดเร็กทอรีที่ระบุ:"); สำหรับ (ชื่อไฟล์สตริง:imageFilesList) { System.out.println (ชื่อไฟล์); } }}

ผลลัพธ์

รายการไฟล์ jpeg ในไดเร็กทอรีที่ระบุ:cassandra_logo.jpgcat.jpgcoffeescript_logo.jpgjavafx_logo.jpg

ตัวอย่าง

<ก่อนหน้า>นำเข้า java.io.IOException;นำเข้า java.nio.file.Files;นำเข้า java.nio.file.Path;นำเข้า java.nio.file.Paths;นำเข้า java.util.stream.Stream;คลาสสาธารณะ ตัวอย่าง { โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น IOException { สตรีม <เส้นทาง> เส้นทาง =Files.walk (Paths.get ("D:\\ExampleDirectory")); เส้นทาง =path.filter(var -> var.toString().endsWith(".jpg")); path.forEach(System.out::println); }}

ผลลัพธ์

รายการไฟล์ jpeg ในไดเร็กทอรีที่ระบุ:cassandra_logo.jpgcat.jpgcoffeescript_logo.jpgjavafx_logo.jpg