File ক্লাসের String[] list(FilenameFilter filter) মেথড একটি স্ট্রিং অ্যারে ফেরত দেয় যেটি করেন্ট (File) অবজেক্টের পাথে থাকা সব ফাইল এবং ডাইরেক্টরির নাম ধারণ করে। কিন্তু রিটার্ন করা অ্যারে নির্দিষ্ট ফিল্টার অনুযায়ী ফিল্টার করা ফাইলনেম ধারণ করে। FilenameFilter জাভাতে একটি ইন্টারফেস যেটির একটি মাত্র মেথড আছে:
accept(File dir, String name)
এক্সটেনশন অনুযায়ী ফাইল নেম পেতে হলে এই ইন্টারফেস ইমপ্লিমেন্ট করে File ক্লাসের list() মেথডে এর অবজেক্ট পাস করতে হবে।
ধরুন ExampleDirectory নামে একটি ফোল্ডার D ডাইরেক্টরিতে ৭টি ফাইল এবং ২টি ডাইরেক্টরি আছে:

উদাহরণ ১
নিচের জাভা প্রোগ্রাম টেক্সট ফাইল এবং JPEG ফাইলগুলো পথ D:\\ExampleDirectory থেকে আলাদা আলাদা প্রিন্ট করে।
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class Sample {
public static void main(String args[]) throws IOException {
// ডাইরেক্টরি জন্য File অবজেক্ট তৈরি
File directoryPath = new File("D:\\ExampleDirectory");
// jpg ফাইল জন্য ফিল্টার তৈরি
FilenameFilter jpgFilefilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
String lowercaseName = name.toLowerCase();
if (lowercaseName.endsWith(".jpg")) {
return true;
} else {
return false;
}
}
};
String imageFilesList[] = directoryPath.list(jpgFilefilter);
System.out.println("List of the jpeg files in the specified directory:");
for (String fileName : imageFilesList) {
System.out.println(fileName);
}
}
}
আউটপুট
List of the jpeg files in the specified directory: cassandra_logo.jpg cat.jpg coffeescript_logo.jpg javafx_logo.jpg
উদাহরণ ২ (NIO.2 ব্যবহার করে)
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class Example {
public static void main(String[] args) throws IOException {
Stream path = Files.walk(Paths.get("D:\\ExampleDirectory"));
path = path.filter(var -> var.toString().endsWith(".jpg"));
path.forEach(System.out::println);
}
}
আউটপুট
List of the jpeg files in the specified directory: cassandra_logo.jpg cat.jpg coffeescript_logo.jpg javafx_logo.jpg