PDA

View Full Version : سوال: گرفتن لیست تمام پوشه ها و فایل های موجود در یک مسیر خاص



c-sharp_South
دوشنبه 22 آبان 1391, 16:42 عصر
سلام دوستان.
یک سوال داشتم.
خواستم بپرسم چطوری میشه لیست تمام فایل ها و پوشه های مورد در یک مسیر خاص
رو توی listVew یا ListBox به نمایش در بیارم؟
مثلا به یک textBox مسیر : D:\Program Files رو بدم و با زدن یک Button لیست تماس
پوشه ها و فایل های موجود در پوشه ی Program Files برام نمایش بده.
ممنون میشم راهنمایی کنید.
یا حق :قلب:

danialafshari
دوشنبه 22 آبان 1391, 18:30 عصر
foreach + system.io.file

c-sharp_South
دوشنبه 22 آبان 1391, 18:58 عصر
دانیال جان این رو که درسته.
مثلا میتونم لیست تمام فایل های درون یک پوشه رو در بیارم توی لیست
ولی نمیتونم لیست پویشه ها رو هم در بیارم.
اگه ممکنه کدشو بزارید

danialafshari
دوشنبه 22 آبان 1391, 19:54 عصر
سلام
چیزی که بلد بودم ببین کارن رو راه میندازه !
string path = @"C:\";
string[] files = System.IO.Directory.GetFiles(path);
string[] folders = System.IO.Directory.GetDirectories(path);
foreach (string fileName in folders)
{
listBox1.Items.Add(fileName);
}
foreach (string fileName in files)
{
listBox1.Items.Add(fileName);
}
موفق باشی

forodo
پنج شنبه 24 مرداد 1392, 17:48 عصر
سلام
چیزی که بلد بودم ببین کارن رو راه میندازه !
string path = @"C:\";
string[] files = System.IO.Directory.GetFiles(path);
string[] folders = System.IO.Directory.GetDirectories(path);
foreach (string fileName in folders)
{
listBox1.Items.Add(fileName);
}
foreach (string fileName in files)
{
listBox1.Items.Add(fileName);
}
موفق باشی
این چیزی که شما گفتید فقط فایل ها و فولدرهای داخل همون پوشه رو برمی گردونه.
حالا اگه بخوایم همه فایل ها و فولدرهای داخل اونارم برگردونه به چه شکل است؟

tooraj_azizi_1035
پنج شنبه 24 مرداد 1392, 17:59 عصر
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] directories =
di.GetDirectories(searchPattern, SearchOption.AllDirectories);

forodo
پنج شنبه 24 مرداد 1392, 18:29 عصر
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] directories =
di.GetDirectories(searchPattern, SearchOption.AllDirectories);

دمت گرم کارم راه افتاد.
اونی که شما نوشتید فقط همه فولدرهای موجود رو میاره:

DirectoryInfo di = new DirectoryInfo(@"E:\Films\Y - Jackie Chan");
DirectoryInfo[] directories = di.GetDirectories("*.*", SearchOption.AllDirectories);
foreach (DirectoryInfo item in directories)
{
lstFilmType.Items.Add(item);
}

و این پایینی هم همه فایلهای موجود رو میاره.

DirectoryInfo di = new DirectoryInfo(@"E:\Films\Y - Jackie Chan");
FileInfo[] directories = di.GetFiles("*.*", SearchOption.AllDirectories);
foreach (FileInfo item in directories)
{
lstFilmType.Items.Add(item);
}

بازم ممنون 2 ساعت بود منتظر بودم چون تا این راه نمی افتاد بقیه کارم گیر بود.

forodo
پنج شنبه 24 مرداد 1392, 23:13 عصر
چطوری می تونم بگم اگه یه فولدر یا فایل به صورت Hidden هستش رو نیار؟
من اینو گذاشتم ولی نشد.

item.Attributes != FileAttributes.Hidden

forodo
پنج شنبه 24 مرداد 1392, 23:31 عصر
لطفاً راهنمایی کنید.

forodo
جمعه 25 مرداد 1392, 12:19 عصر
یکی کمکی بکنه!!!

samadblaj
جمعه 25 مرداد 1392, 13:22 عصر
سلام بیا از این دو تا لینک استفاده کن لینک اول (http://www.c-sharpcorner.com/uploadfile/17e8f6/windows-explorer-in-c-sharp-net/) | لینک دوم (http://www.codeproject.com/Articles/2672/My-Explorer-In-C)

forodo
جمعه 25 مرداد 1392, 14:10 عصر
سلام بیا از این دو تا لینک استفاده کن لینک اول (http://www.c-sharpcorner.com/uploadfile/17e8f6/windows-explorer-in-c-sharp-net/) | لینک دوم (http://www.codeproject.com/Articles/2672/My-Explorer-In-C)
این دوتا در مورد webbrowser هستش.
من می خوام اگه اون فولدر به صورت هیدن بود تو لیست باکس نمایشش نده.

danialafshari
جمعه 25 مرداد 1392, 14:40 عصر
چطوری می تونم بگم اگه یه فولدر یا فایل به صورت Hidden هستش رو نیار؟
من اینو گذاشتم ولی نشد.

item.Attributes != FileAttributes.Hidden


سلام
بفرمائید:
private void button1_Click(object sender, EventArgs e)
{
var dirs = Directory.GetDirectories(@"d:\myFolder")
.Select(d => new { Attr = new DirectoryInfo(d).Attributes, Dir = d })
.Where(x => !x.Attr.HasFlag(FileAttributes.System))
.Where(x => !x.Attr.HasFlag(FileAttributes.Hidden))
.Select(x => x.Dir)
.ToList();

foreach (string dir in dirs)
{
listBox1.Items.Add(dir);
}
}
موفق باشی

forodo
جمعه 25 مرداد 1392, 14:54 عصر
سلام
بفرمائید:
private void button1_Click(object sender, EventArgs e)
{
var dirs = Directory.GetDirectories(@"d:\myFolder")
.Select(d => new { Attr = new DirectoryInfo(d).Attributes, Dir = d })
.Where(x => !x.Attr.HasFlag(FileAttributes.System))
.Where(x => !x.Attr.HasFlag(FileAttributes.Hidden))
.Select(x => x.Dir)
.ToList();

foreach (string dir in dirs)
{
listBox1.Items.Add(dir);
}
}
موفق باشی
روش دیگری هم هست که کوتاهتر باشه؟
من فقط می تونم با LINQ به بانک اطلاعاتی وصل شم و کارای اضافه و ویرایش و حذف رو انجام بدم و با طرز نوشتن کدای دیگه LINQ آشنا نیستم.
اگه در مورد خطوط توضیح بدید ممنون می شم..

forodo
جمعه 25 مرداد 1392, 18:31 عصر
لطفاً راهنمایی کنید.

forodo
شنبه 26 مرداد 1392, 10:57 صبح
کسی کمکی بکند