آموزش ساخت File Explorer در #C به همراه سورس کد
سلام بر برنامه نویسان #C … در این مطلب آموزشی #C ، یاد می گیرید که چه طور برنامه ی فایل منیجر یا همون فایل اکسپلورر رو بسازید. طرز کار برنامه به این صورت هست که ابتدا کاربر درایو مورد نظر خودش رو میتونه از یک combobox انتخاب کنه و با کلیک کردن بر روی دکمه نمایش میتونه فایل ها و فولدر های اون درایو رو مشاهده کنه.فولدر ها در لیست باکس سمت راست و فایلها در listbox سمت چپ نمایش داده می شوند.همچنین مسیر فعلی که کاربر در اون قرار داره هم درون یک تکست باکس نمایش داده میشه و کاربر وقتی روی هر کدام از آیتم های لیست باکس سمت راست که همه ی آن ها فولدر هستند ، کلیک میکنه ، میتونه فایل های اون فولدر رو در لیست باکس سمت چپ مشاهده کند.
برای مشاهده ی این آموزش به صورت کامل و همچنین دانلود سورس کد آن باید عضو vip سایت باشید.
هم چنین یک دکمه ی Up هم وجود دارد که کاربر را به مسیر بالایی می برد.یعنی اگر کاربر در مسیر c:\aa\bb بود آن را به مسیر c:\aa می برد.
و یک چیز جذاب دیگری که در این برنامه وجود دارد ، دکمه ی بازکردن است که کاربر می تواند یک فایل را از لیست باکس سمت چپ انتخاب کند و با کلیک کردن بر روی دکمه ی باز کردن ، می تواند آن را باز کند.
دیگر قابلیت های این پروژه ، نمایش سایر فایل و تاریخ ساخته شدن و … می باشد که در پایین برنامه نمایش داده می شود.
همچنین امکان پاک سازی نیز وجود دارد که لیست باکس ها و تکست باکس ها خالی می شوند.
ابتدا سعی کنید فرمتان را مانند تصویر زیر بسازید یا می توانید از سورس کدی که در پایان این متن لینک دانلودش رو قرار دادم استفاده کنید:
سپس فضای نام زیر را به بالای کدهایتان اضافه کنید:
این فضای نام برای کار با فایل ها مورد استفاده قرار می گیرد.
حالا قبل از کد public Form1() و بعد از آکولاد کد public partial class Form1 : Form ، کدهای زیر را قرار دهید:
private string sampledriveletter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
که در نهایت کدهای این قسمت شما به صورت زیر در بیاید:
{
private string currentFolderPath;
private string sampledriveletter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public Form1()
{
InitializeComponent();
}
حالا در رویداد Load فرم ، کد زیر را قرار دهید:
و حالا تابع LoadDrive را به این صورت تعریف کنید:
[ccW_csharp]
protected void LoadDrive()
{
DirectoryInfo driveletter;
foreach (char c in sampledriveletter)
{
string drive = c + ":\";
driveletter = new DirectoryInfo(drive);
if (driveletter.Exists == true)
{
DriveCombo.Items.Add(driveletter.FullName);
}
}
}
تابع LoadDrive برای لود کردن درایوهای کامپیوتر و افزودن آن ها به کامبوباکس DriveCombo می باشد.
کد بالا ابتدا در یک حلقه ی foreach ، تمام کاراکترهای درون رشته ی sampledriveletter که شامل حروف الفبا از A تا Z است را پیمایش می کند و اگر driveletter وجود داشت ، آن درایو را به کامبوباکس DriveCombo اضافه میکند.
سپس تابع ClearAllFields را به صورت زیر تعریف کنید:
{
listBoxFolders.Items.Clear();
listBoxFiles.Items.Clear();
textBoxFolder.Text = "";
textBoxFileName.Text = "";
textBoxCreationTime.Text = "";
textBoxLastAccessTime.Text = "";
textBoxLastWriteTime.Text = "";
textBoxFileSize.Text = "";
}
تابع ClearAllFields برای پاک کردن تکست باکس ها و لیست باکس ها به کار می رود و اگر کاربر روی دکمه ی پاک سازی کلیک کند ، این تابع فراخوانی می شود.
سپس این 2 تابع را تعریف کنید:
protected void DisplayFileInfo(string fileFullName)
{
FileInfo theFile = new FileInfo(fileFullName);
if (!theFile.Exists)
{
throw new FileNotFoundException("File not found: " + fileFullName);
}
textBoxFileName.Text = theFile.Name;
textBoxCreationTime.Text = theFile.CreationTime.ToLongTimeString();
textBoxLastAccessTime.Text = theFile.LastAccessTime.ToLongDateString();