من یه متد برای جستجوی هارد طراحی کردم اونو اینجا وارد میکنم تا نظر بدین اگه راه حل بهتری هم سراغ دارین بگین لطفا ولی این روش من سرعتش کمه یه مقدار :cry: :idea:

int num = 0;
string drives = "";
System.Collections.ArrayList arr = new System.Collections.ArrayList();
this.listBox1.Items.Clear();
arr.Add("d:\\");

//Get Client Drives List

foreach(string d in System.IO.Directory.GetLogicalDrives()&#41 ;
{
drives += d + "\n";
}

MessageBox.Show(drives); // Show Drives List

//Searching *.* in Selected Path

if(arr.Count != 0)
{
for(int i = 0; i != arr.Count;i++)
{
foreach(string n in System.IO.Directory.GetDirectories(arr[num ].ToString()))
{
arr.Add(n);
}
foreach(string f in System.IO.Directory.GetFiles(arr[num]. ToString(),"*.*"))
{
listBox1.Items.Add(f);
this.label1.Text = f.ToString();
Application.DoEvents();
}
num++;
}
}


MessageBox.Show(this.listBox1.Items.Count.ToSt ring());