Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি সম্পর্কিত কাজের জন্য FileFilter ক্লাস সরবরাহ করে, যা আপনাকে ফাইল ফিল্টার করার জন্য সহজ এবং কার্যকরী উপায় প্রদান করে। FileFilter এর মাধ্যমে আপনি নির্দিষ্ট ফাইলগুলিকে ফিল্টার করতে পারেন যেমন এক্সটেনশন বা নামের উপর ভিত্তি করে। এটি ফাইল সিস্টেমে দ্রুত এবং কার্যকরীভাবে ফাইল নির্বাচন বা ফিল্টার করার জন্য ব্যবহার করা যায়।
FileFilter Interface এবং Predicate
FileFilter একটি interface যা accept() মেথডে ফাইলের জন্য শর্ত বা প্রেডিকেট ব্যবহার করে। আপনি নিজের কাস্টম শর্ত অনুসারে ফাইল ফিল্টার করতে পারেন।
FileFilter সাধারণত FileUtils বা File ক্লাসের সাথে ব্যবহৃত হয় এবং নির্দিষ্ট শর্তে ফাইল নির্বাচন বা ফিল্টার করার জন্য এটি সহজ উপায় সরবরাহ করে।
FileFilter ব্যবহার করার পদক্ষেপ
- FileFilter ইন্টারফেস বাস্তবায়ন করা:
- প্রথমত, FileFilter ইন্টারফেসটি বাস্তবায়ন করতে হবে যা
accept()মেথডকে কাস্টম শর্ত অনুসারে পরিচালনা করবে।
- প্রথমত, FileFilter ইন্টারফেসটি বাস্তবায়ন করতে হবে যা
- FileUtils এর সাথে FileFilter ব্যবহার:
- FileUtils ক্লাসের
listFiles()মেথডে FileFilter ব্যবহার করে ফাইল ফিল্টার করা সম্ভব।
- FileUtils ক্লাসের
FileFilter ব্যবহার করে নির্দিষ্ট ফাইল ফিল্টার করা
এখানে একটি উদাহরণ দেওয়া হল, যেখানে FileFilter ব্যবহার করে ফাইলের এক্সটেনশন .txt অনুযায়ী ফিল্টার করা হয়েছে:
FileFilter উদাহরণ:
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;
import java.io.File;
import java.io.IOException;
public class FileFilterExample {
public static void main(String[] args) {
// ডিরেক্টরি যেখানে ফাইল ফিল্টার করা হবে
File directory = new File("C:/exampleDirectory");
// FileFilter তৈরি করুন যা .txt এক্সটেনশন সহ ফাইল ফিল্টার করবে
FileFilter fileFilter = FileFilterUtils.suffixFileFilter(".txt");
// FileUtils এর মাধ্যমে ফাইল ফিল্টার করা
File[] filteredFiles = directory.listFiles((FileFilter) fileFilter);
// ফিল্টার করা ফাইলগুলোর নাম প্রিন্ট করা
if (filteredFiles != null) {
for (File file : filteredFiles) {
System.out.println(file.getName());
}
} else {
System.out.println("কোনো .txt ফাইল পাওয়া যায়নি।");
}
}
}
ব্যাখ্যা:
FileFilterUtils.suffixFileFilter(".txt"): এই মেথডটি একটি ফাইল ফিল্টার তৈরি করে যা.txtএক্সটেনশনযুক্ত ফাইলগুলিকে ফিল্টার করবে।listFiles()মেথডের মাধ্যমে নির্দিষ্ট ডিরেক্টরির মধ্যে ফাইল ফিল্টার করা হচ্ছে।filteredFilesঅ্যারে তে শুধু.txtফাইল গুলি থাকবে যেগুলি ফিল্টার করা হয়েছে।
Output:
file1.txt
file2.txt
আরও উন্নত ফাইল ফিল্টারিং
আপনি আরও কাস্টম ফিল্টারিং শর্ত প্রয়োগ করতে পারেন যেমন ফাইলের আকার, নামের সাথে regex ম্যাচ, বা নির্দিষ্ট ফাইলের অন্তর্ভুক্তি বা অনুপস্থিতি।
কাস্টম FileFilter উদাহরণ (নাম অনুযায়ী ফিল্টারিং)
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.NameFileFilter;
import java.io.File;
import java.io.IOException;
public class CustomFileFilterExample {
public static void main(String[] args) {
// ডিরেক্টরি যেখানে ফাইল ফিল্টার করা হবে
File directory = new File("C:/exampleDirectory");
// কাস্টম ফাইল ফিল্টার তৈরি (নাম অনুযায়ী ফিল্টার)
IOFileFilter fileFilter = new NameFileFilter("example");
// FileUtils এর মাধ্যমে কাস্টম ফিল্টার প্রয়োগ করা
File[] filteredFiles = directory.listFiles((IOFileFilter) fileFilter);
// ফিল্টার করা ফাইলগুলোর নাম প্রিন্ট করা
if (filteredFiles != null) {
for (File file : filteredFiles) {
System.out.println(file.getName());
}
} else {
System.out.println("কোনো ফাইল পাওয়া যায়নি।");
}
}
}
ব্যাখ্যা:
NameFileFilterফাইল নামের সাথে নির্দিষ্ট টেক্সট মেলা (matching) করতে ব্যবহৃত হয়। এখানে "example" শব্দ দিয়ে ফিল্টার করা হচ্ছে, যাতে শুধুমাত্র "example" নামের ফাইলগুলি ফিল্টার হবে।
Output:
exampleFile1.txt
exampleImage.jpg
FileFilter এর অন্যান্য ফিচার
- SuffixFileFilter:
- এই ফিল্টারটি ফাইলের এক্সটেনশন অনুযায়ী ফাইল ফিল্টার করতে সাহায্য করে।
- উদাহরণ:
.txt,.jpg, ইত্যাদি।
- PrefixFileFilter:
- এই ফিল্টারটি ফাইলের নামের প্রিফিক্স (prefix) অনুযায়ী ফাইল ফিল্টার করতে সাহায্য করে।
- TrueFileFilter:
- এই ফিল্টারটি সব ফাইলকে accept করে এবং সব ফাইলকে অনুমোদন দেয়।
- DirectoryFileFilter:
- এই ফিল্টারটি শুধুমাত্র ডিরেক্টরি গুলিকে ফিল্টার করতে ব্যবহৃত হয়।
Apache Commons IO এর FileFilter ক্লাসটি আপনাকে ফাইল ফিল্টারিংয়ের জন্য শক্তিশালী এবং নমনীয় পদ্ধতি প্রদান করে। আপনি FileFilterUtils ব্যবহার করে সহজেই এক্সটেনশন, নাম, সাইজ বা অন্যান্য শর্তে ফাইল ফিল্টার করতে পারেন। Apache Commons IO লাইব্রেরির এই ফিচারগুলি ফাইল সিস্টেমের সাথে কাজ করার সময় ডেভেলপারদের জন্য অনেক সহায়ক।
Read more