PDA

View Full Version : کار با system io



amirrr3
دوشنبه 14 اسفند 1391, 00:55 صبح
اولا اینکه آقای مدیر سایت واسه چی تاپیک منو حذف می کنی
اگه می خوای حذف کنی دلیلش رو هم تو پیام واسم بفرست که حداقل بدونم چرا
درضمن من این بخش رو گشتم و جایی نبود واسه پرسش ها. پس مشکل تاپیک چیه که حذفش کردی (یه چیزی یاد گرفتید حالا)

سوال من این بود که وقتی با این کد می خوام مثلا یه درایو رو بگردم


string[] str = Directory.GetFiles(@"d:\", "*.txt", SearchOption.AllDirectories);

وقتی که به فولدرهای سیستمی می رسه (مثل Recycle.bin) برنامه دچار باگ میشه و گیر میکنه

حالا من باید چیکار کنم که دیگه این مشکل پیش نیاد؟؟؟؟

docendo
دوشنبه 14 اسفند 1391, 01:23 صبح
اولا اینکه آقای مدیر سایت واسه چی تاپیک منو حذف می کنی
اگه می خوای حذف کنی دلیلش رو هم تو پیام واسم بفرست که حداقل بدونم چرا
درضمن من این بخش رو گشتم و جایی نبود واسه پرسش ها. پس مشکل تاپیک چیه که حذفش کردی (یه چیزی یاد گرفتید حالا)

سوال من این بود که وقتی با این کد می خوام مثلا یه درایو رو بگردم



با درود



string[] str = Directory.GetFiles(@"d:\", "*.txt", SearchOption.AllDirectories);

وقتی که به فولدرهای سیستمی می رسه (مثل Recycle.bin) برنامه دچار باگ میشه و گیر میکنه

حالا من باید چیکار کنم که دیگه این مشکل پیش نیاد؟؟؟؟








هدف مدیران تالار سعی در بهبود سایت و راحتی کاربران این تالار را دارند پس قصد و نیتی در کار نیست و یا با یک شخص مجازی دشمنی ندارند بارها شده هست پستهای مرا هم پاک کرده اند بعد خودم متوجه شده ام که اشتباه از من بوده و مطابق با قوانین تالار پیش نرفته ام
مطمعن باشید اینار هم پست شما را دلیت خواهند کرد چراکه سرفصل سوالتان با نوع ومتن سوالتان تفاوت دارد
اما پاسخ سوالتان
این کد شما
d:\", "*.txt"
هرگز Recycle.bin را سرچ نخواهد کرد


این یک نمونه





Directory.GetFiles(path, "*.*", *.Bin",*.Txt",SearchOption.AllDirectories)

.Where(f => set.Contains(

new FileInfo(f).Extension,

StringComparer.OrdinalIgnoreCase));

amirrr3
دوشنبه 14 اسفند 1391, 02:48 صبح
آقا مرسی
ولی این کدی که شما نوشتی ، جز خط اولش بقیش رو نفهمیدم
میشه یه توضیحی بدید لطفا (تا قبل از اینکه این تاپیک دیلیت بشه، آخه من زیاد وقت ندارم)

مهرداد صفا
دوشنبه 14 اسفند 1391, 11:08 صبح
با سلام.
اول اینکه عنوانی که انتخاب کردید فقط به System.IO اشاره می کند در حالی که System.IO بخشی از .net است که خود شامل اجزا و کلاسهای مختلف و مباحث گوناگون است. عنوان شما باید گویای مشکل و یا موضوع مورد بحث تاپیک باشد و از طرفی آنقدر کلی نباشد که موارد گوناگون خارج از بحث تاپیک را هم تحت پوشش قرار دهد، فکر می کنم در غیر این صورت عنوان "مشکل در برنامه C#‎" عنوان مناسبی برای اکثر تاپیکها بود که جز سردرگمی نتیجه ای نداشت.

می توانید در یک حلقه تک تک پوشه های اصلی را گرفته و فقط پوشه هایی که سیستمی نیستند را جستجو کنید:

List<string> files=new List<string>();
string path="e:";
foreach (string folder in Directory.GetDirectories(path))
{
//if you want to get no error uncomment this line to skip system directories.
// if((new DirectoryInfo(folder)).Attributes.HasFlag(FileAttr ibutes.System))
// continue;
try
{
files.AddRange(Directory.GetFiles(folder, "*", SearchOption.AllDirectories));
}
catch
{
MessageBox.Show("access to path " + folder + " is not allowed!", "error",MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
files.AddRange(Directory.GetFiles(path));

majidrezaei2007
دوشنبه 14 اسفند 1391, 15:20 عصر
از try استفاده کن
بی دردسر