ফাইল পাওয়ার জন্য C#-তে Directory.GetFiles মেথড আছে।
Directory.GetFiles নির্দিষ্ট সার্চ প্যাটার্ন অনুযায়ী সকল ফাইলের নাম (পাথসহ) রিটার্ন করে, এবং অপশনালি সাবডিরেক্টরিও সার্চ করে।
নিচের উদাহরণে * স posisi শূন্য বা অধিক ক্যারেক্টার ম্যাচ করে।
SearchOption.TopDirectoryOnly: শুধু টপ ডিরেক্টরিসার্চ করে।SearchOption.AllDirectories: টপ ডিরেক্টরি এবং সকল সাবডিরেক্টরি সার্চ করে।FileInfoক্লাস ফাইল ইনফরমেশন (Length, Name) পাওয়ার জন্য।
উদাহরণ ১: সকল ফাইল (সাবডিরেক্টরি সহ)
static void Main(string[] args)
{
string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);
foreach (string file in files)
{
Console.WriteLine(file);
}
Console.ReadLine();
}
আউটপুট
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain\TestFolderMain.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1\TestFolderMain1.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMain2.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMainSubDirectory\TestFolderSubDirectory.txt
উদাহরণ ২: শুধু টপ ডিরেক্টরি
static void Main(string[] args)
{
string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
var files = Directory.GetFiles(rootPath, "*.*", SearchOption.TopDirectoryOnly);
foreach (string file in files)
{
Console.WriteLine(file);
}
Console.ReadLine();
}
আউটপুট
C:\Users\Koushik\Desktop\TestFolder\Topdirectory.txt
উদাহরণ ৩: ফাইল সাইজ সহ
static void Main(string[] args)
{
string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);
foreach (string file in files)
{
var info = new FileInfo(file);
Console.WriteLine($"{Path.GetFileName(file)}: {info.Length} bytes");
}
Console.ReadLine();
}
আউটপুট
Topdirectory.txt: 0 bytes
TestFolderMain.txt: 0 bytes
TestFolderMain1.txt: 10 bytes
TestFolderMain2.txt: 20 bytes
টিপ: বড় ডিরেক্টরির জন্য EnumerateFiles ব্যবহার করুন মেমরি দক্ষতার জন্য।