نمایش نام درایو های سیستم با سی شارپ
برای به دست آوردن اطلاعات درایو های سیستم می تونیم به سه روش عمل کنیم:
روش اول:
استفاده از کلاس Environment و تابع GetLogicalDrives
که خروجی اون ارایه ای از رشته هاست .پس برای در یافت نام درایو های سیستم به این صورت عمل میکنیم:
اول به کامبو باکس روی فرم قرار بدین و کد های زیر رو در رویداد فرم لود فرم قرار بدید
1 2 3 4 5 6 7 8 9 10 11 |
DriveInfo dRinfo; comboBox1.Items.Clear(); string[] Drive = Environment.GetLogicalDrives(); foreach (string item in Drive) { dRinfo = new DriveInfo(item); if (dRinfo.DriveType == DriveType.Fixed) { comboBox1.Items.Add(item); } } |
در این کد ابتدا یک شی از نوع DriveInfo تعریف کردم در خط دوم محتوای کامبو باکس رو خالی کردم.در خط سوم خوجی تابع GrtLogicalDrives که ارایه ای از نوع رشته هستش رو درون یک متغیر String به نام Drive ریختم و با استفاده از یک حلقه Foreach اون رو پیمایش کردم و گفتم در صورتی که درایو آماده به کار بود و نوع درایو Fixed بود اون رو به کامبو باکس من اضافه کنه.
روش دوم:
اما روش دوم استفاده از کلاس DriveInfo و متد GetDrives هستش.
1 2 3 4 5 6 7 8 9 |
DriveInfo[] Info = DriveInfo.GetDrives(); for (int i = 0; i < Info.Length; i++) { DriveInfo DI = Info[i]; if (DI.DriveType == DriveType.Fixed && DI.IsReady) { comboBox1.Items.Add(DI.Name); } } |
روش سوم :
1 2 3 4 5 6 7 |
foreach (DriveInfo Drive in DriveInfo.GetDrives()) { if (Drive.IsReady) { comboBox1.Items.Add(Drive.ToString()); } } |
خب برای نمایش اطلاعات درایو ها هم از پراپرتی های کلاس DriveInfo استفاده میکنیم
برای نمایش اطلاعات به صورت چارت هم یک کنترل چارت به فرم اضافه میکنیم .
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 30 31 32 33 34 35 36 37 |
DriveInfo dinfo2 = new DriveInfo(comboBox1.SelectedItem.ToString()); label10.Text = dinfo2.Name; label11.Text = dinfo2.DriveType.ToString(); if (dinfo2.IsReady) { chart1.Series.Clear(); chart1.Titles.Clear(); double total, totalfreeSpace, AvailableSpace; total = Convert.ToDouble(((dinfo2.TotalSize / 1024) / 1024) / 1024); totalfreeSpace = Convert.ToDouble(((dinfo2.TotalFreeSpace / 1024) / 1024) / 1024); AvailableSpace = Convert.ToDouble(((dinfo2.AvailableFreeSpace / 1024) / 1024) / 1024); label12.Text = dinfo2.DriveFormat; label13.Text = total.ToString(); label14.Text = totalfreeSpace.ToString(); label15.Text = dinfo2.VolumeLabel; label16.Text = dinfo2.RootDirectory.ToString(); label17.Text = AvailableSpace.ToString(); string[] seriesArr = { "TotalSize", "TotalFreeSpace", "AvailableFreeSpace" }; double[] point = { total, totalfreeSpace, AvailableSpace }; Series s1 = this.chart1.Series.Add(seriesArr[0]); s1.Color = Color.Blue; s1.Label = total.ToString(); s1.Points.Add(point[0]); Series s2 = this.chart1.Series.Add(seriesArr[1]); s2.Color = Color.Pink; s2.Label = totalfreeSpace.ToString(); s2.Points.Add(point[1]); Series s3 = this.chart1.Series.Add(seriesArr[2]); s3.Color = Color.Yellow; s3.Label = AvailableSpace.ToString(); s3.Points.Add(point[2]); } { return; } |
درکد بالا ابتدا درایو انتخاب شده توسط کاربر از کنترل کامبو باکس رو به یک نمونه از کلاس DriveInfo میدیم
با استفاده از خصوصیات کلاس مورد نظر مشخصات رو فراخوانی میکنیم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
dinfo2.Name;//دریافت نام درایو dinfo2.DriveType.ToString();//نوع درایو مثلا:Fixed,removable,CD-rom .... //چون نمایش فضای دیسک به صورت بایت هستش پس باید تبدیل به گیگ بشه تا در چارت //به نمایش در بیاد چون مقدار بایتی که به ما میده از نوع //Long هستش double total, totalfreeSpace, AvailableSpace; total = Convert.ToDouble(((dinfo2.TotalSize / 1024) / 1024) / 1024); totalfreeSpace = Convert.ToDouble(((dinfo2.TotalFreeSpace / 1024) / 1024) / 1024); AvailableSpace = Convert.ToDouble(((dinfo2.AvailableFreeSpace / 1024) / 1024) / 1024); label12.Text = dinfo2.DriveFormat;//NtFS Or FAT label13.Text = total.ToString();//Total Size label14.Text = totalfreeSpace.ToString(); label15.Text = dinfo2.VolumeLabel;//برچسب درایو label16.Text = dinfo2.RootDirectory.ToString(); label17.Text = AvailableSpace.ToString(); |
برای این که اطلاعات رو در چارت نمایش بدیم هم به صورت زیر عمل می کنیم:
بتدا کد زیر رو در رویداد SelectedIndexChanged کامبو باکس بنویسید.
1 2 |
chart1.Series.Clear(); chart1.Titles.Clear(); |
با استفاده از کدهای زیر سه سری اطلاعات برای نمایش در چارت ایجاد میکنیم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
string[] seriesArr = { "TotalSize", "TotalFreeSpace", "AvailableFreeSpace" }; double[] point = { total, totalfreeSpace, AvailableSpace }; Series s1 = this.chart1.Series.Add(seriesArr[0]); s1.Color = Color.Blue; s1.Label = total.ToString(); s1.Points.Add(point[0]); Series s2 = this.chart1.Series.Add(seriesArr[1]); s2.Color = Color.Pink; s2.Label = totalfreeSpace.ToString(); s2.Points.Add(point[1]); Series s3 = this.chart1.Series.Add(seriesArr[2]); s3.Color = Color.Yellow; s3.Label = AvailableSpace.ToString(); s3.Points.Add(point[2]); |
دانلود سورس کد پروژه با لینک مستقیم