سلام دوستان در این پست با ما در آموزش کار با درایو ها در سی شارپ همراه باشید.
ابتدا پس از ساختن یک پروژه ویندوز فرم سی شارپ جدید یک Data Grid View با نام dataGV و یک دکمه بسازید.
Column های dataGV را به شکلی که در عکس مشاهده می کنید در بیاورید.
کتابخانه زیر را اضافه کنید(DriveInfo در این کتابخانه قرار دارد).
1 | using System.IO; |
وارد Form1.cs خود شده و تابع زیر را در آن بنویسید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | string getSize(Double numberAsByte, int numberOfDecimal) { string arm = "Byte"; while (numberAsByte > 1024) { if (arm == "TByte") break; numberAsByte = numberAsByte / 1024.0; switch (arm) { case "Byte": arm = "KByte"; break; case "KByte": arm = "MByte"; break; case "MByte": arm = "GByte"; break; case "GByte": arm = "TByte"; break; } } double d = numberAsByte * Math.Pow(10, numberOfDecimal); int i = (int)d; numberAsByte = i / Math.Pow(10, numberOfDecimal); return numberAsByte + " " + arm; } |
این تابع مقدار حجم بر حسب بایت و تعداد رقم اعشار مورد نظر ما را دریافت می کند و به صورت یک string همراه با پسوند Byte یا KByte یا ...
یک تابع از نوع void به نام refresh ایجاد کنید و در آن کد های زیر را بنویسید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | DriveInfo[] drives = DriveInfo.GetDrives(); foreach(DriveInfo Drive in drives) { if (Drive.IsReady) { dataGV.Rows.Add( Drive.VolumeLabel + "(" + Drive.Name + ")", //نام و آدرس درایو Drive.DriveType.ToString(), //نوع درایو مثل removable و Fixed Drive.DriveFormat, //فرمت درایو مثل NTFS و FAT32 getSize(Drive.TotalFreeSpace, 3), //مقدار فضای خالی را با کمک تابعی که قبلاً تعریف کردیم پیدا می کند getSize(Drive.TotalSize, 3) //مقدار کل فضای موجود را با کمک تابعی که قبلاً تعریف کردیم پیدا می کند ); } } |
این تابع درایو ها را می گیرد و اطلاعات آن ها را در dataGV نمایش می دهد. خط چهار آمادگی درایو را چک می کند. دقّت کنید که در خط 7 VolumeLabel نام و Name مسیر درایو است(راه های بسیار متعدد دیگری برای پیدا کردن مسیر درایو وجود دارد).
حال در رویداد کلیک دکمه refresh و رویدادload فرمتان کد زیر را قرار دهید.
1 | refresh(); |
این کد هم که همانطور که مشخص است تابع refresh را فرا می خواند.
حال اگر برنامه را اجرا کنید با چنین نتیجه ای رو به رو خواهید شد.
امیدوارم خوشتان اومده باشه.
تا پستی دیگر خدانگهدار