View Full Version : گذاشتن فیلتر بر روی foreach
hamedre81
شنبه 29 مهر 1391, 00:36 صبح
سلام
من می خوام با استفاده از حلقه foreach فقط فایل های که با پسوند خاصی هستند داخل لیست باکس نمایش داده بشن ! آیا چنین کاری ممکن هست؟
Y_Safaiee
شنبه 29 مهر 1391, 01:06 صبح
با سلام خدمت شما دوست عزیز
راحت ترین کد ممکن اینه :
listBox1.Items.Clear();
string[] files = Directory.GetFiles(@"d:\");
foreach (string str in files)
{
if (Path.GetExtension(str) == ".txt") listBox1.Items.Add(str);
}
تایع کتابخانه ای زیر رو هم Using کن :
using System.IO;
موفق باشی
بایت بایت
mmd2009
شنبه 29 مهر 1391, 02:46 صبح
با سلام
اگر میخوایید خود حلقه foreach رو فیلتر کنید میتونید به این شکل عمل کنید :
foreach (string str in Directory.GetFiles(@"d:\").Where(str => Path.GetExtension(str) == ".pdf"))
{
listBox1.Items.Add(str);
}
اگر هم دوست نداری حلقه داشته باشی کافیه بدین شکل عمل بکنی :
listBox1.DataSource = Directory.GetFiles(@"d:\").Where(str => Path.GetExtension(str) == ".pdf").ToList();
موفق باشید
mehdi.mousavi
شنبه 29 مهر 1391, 06:40 صبح
سلام.
نیازی به گرفتن کلیه فایل ها در شاخه d:\ و سپس فیلتر کردن نتایج نیست. متود GetFiles،
overload های دیگه ای نیز داره که برای این کار استفاده میشه:
foreach (string filename in Directory.GetFiles(@"d:\", "*.pdf"))
{
}
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.