PDA

View Full Version : بهترین روش برای جمع آوری نام تمام فایل های موجود در هارد دیسک



amir200h
شنبه 07 دی 1392, 21:08 عصر
سلام به همه دوستان.
من میخوام لیست تمام فایل ها با هر پسوندی که باشه رو تو ی جدول در بانکم ذخیره کنم.
آیا راهی سراغ دارین؟؟
ممنون میشم اگه کمک کنین

Felony
یک شنبه 08 دی 1392, 06:17 صبح
با متدهای GetDirectories و GetFiles کلاس Directory و متد GetDrives کلاس DriveInfo میشه این کار رو انجام داد ، مشکلی که هست اینه که این متدها وقتی به فایل های سیستمی که بهشون دسترسی ندارن میرسن تولید خطا میکنن و کارشون متوقف میشه .

قبلا این کد رو برای گرفتن لیست فایل های یک پوشه و زیر پوشه های اون نوشته بودم :


public static List<string> GetFiles(string root, string searchPattern = "*.*")
{
var result = new List<string>();
var pending = new Stack<string>();
pending.Push(root);
while (pending.Count != 0)
{
var path = pending.Pop();
string[] next;
try
{
next = Directory.GetFiles(path, searchPattern);
result.AddRange(next);
}
catch (Exception)
{
}

/* if (next != null && next.Length != 0)
foreach (var file in next) yield return file;*/
try
{
next = Directory.GetDirectories(path);
foreach (var subdir in next) pending.Push(subdir);
}
catch (Exception)
{
}
}

return result;
}

که اگر به این صورت استفاده بشه نیاز شما رو براورده میکنه :


var files = new List<string>();

foreach (var drive in DriveInfo.GetDrives())
files= GetFiles(drive.Name);

esafb52
یک شنبه 08 دی 1392, 12:14 عصر
اولین بار هست که استفاده عملی (غیر نظری) کلاس Stack رو دیدم!!!جالب بود

amir200h
یک شنبه 08 دی 1392, 12:38 عصر
من خودم به این کد رسیدم. ولی تو یک درایو درجا میزنه و وارد درایو دیگه نمیشه

http://trainbit.com/files/3431769884/getfiles.zip