PDA

View Full Version : سوال: پیدا کردن نام درایو های removable disk



erfan_urchin
دوشنبه 02 بهمن 1391, 00:41 صبح
چجوری میتونم نام درایو USBهایی که به کامپیوتر وصل هستند رو پیدا کرد؟
من خودم یه کد پیدا کردم که تا یه جاهاییش جواب میده اما نمیدونم داخل if چی بنویسم؟؟؟
این اون کدیه که من پیدا کردم:
DriveInfo[] ListDrives = DriveInfo.GetDrives();

foreach (DriveInfo Drive in ListDrives)
{
if (Drive.DriveType == DriveType.Removable)
{
//do your processing here
}
}
میخوام به جای اون قسمت کامنت یه کدی بنویسم که نام درایو هایی که USB هستند رو داخل تکست باکس نشون بده مثلا \:F یا \:K

danialafshari
دوشنبه 02 بهمن 1391, 02:02 صبح
سلام
بفرمائید با استفاده از Linq :
MessageBox.Show((from drive in System.IO.DriveInfo.GetDrives() where drive.DriveType == System.IO.DriveType.Removable select drive.Name).First());

کد خودتون هم کار میده :
using System.IO;
private void button1_Click(object sender, EventArgs e)
{
DriveInfo[] ListDrives = DriveInfo.GetDrives();

foreach (DriveInfo Drive in ListDrives)
{
if (Drive.DriveType == DriveType.Removable)
{
listBox1.Items.Add(Drive.ToString());
}
}
}
موفق باشی

mmd2009
دوشنبه 02 بهمن 1391, 02:06 صبح
با سلام

نیازی نیست اینقدر کدتون رو بپیچونید. میتونید به این روش و با استفاده از Linq این کارو بکنید :


var removablePath = DriveInfo.GetDrives().SingleOrDefault(d => d.DriveType == DriveType.Removable);
if (removablePath != null)
textBox1.Text =
removablePath.Name;


موفق باشید


ویرایش : کدی که در بالا جناب danialafshari گذاشتن هم درسته به شرطی که به این صورت تغییرش بدید :


MessageBox.Show((

from drive in DriveInfo.GetDrives()
where drive.DriveType == DriveType.Removable
select drive.Name


).FirstOrDefault());