PDA

View Full Version : سوال: حذف پوشه و مقدار داخل آن با سی شارپ



padidehco
دوشنبه 25 اردیبهشت 1391, 01:16 صبح
سلام دوستان با استفاده از سی شارپ یک پوشه ایجاد می کنم
و درون ان فایل می ریزم
وقتی می خواهم پوشه را حذف کنم خطا می گیره
می خواهم پوشه و تمام محتوای داخل اون را حذف کنم
باید چی کار کنم؟
با تشکر

b.saminjad
دوشنبه 25 اردیبهشت 1391, 09:52 صبح
سلام

استریم ایجاد فایل رو ببند بعد با یه استریم دیگه محتویاتشو حذف کن

padidehco
دوشنبه 25 اردیبهشت 1391, 19:04 عصر
سلام

استریم ایجاد فایل رو ببند بعد با یه استریم دیگه محتویاتشو حذف کن
دوست عزیز از جوابتون خیلی ممنونم
من توسط این کد تونستم پوشه و محتوایات داخل اون را حذف کنم
حالا مشکل اینجاست که اگر اون پوشه در حال اجرا باشه ارور می ده
این هم کد Directory.Delete(@"d:/mahdi", true);
اگر می شه راه نمایی کنید

b.saminjad
چهارشنبه 27 اردیبهشت 1391, 11:13 صبح
سلام

درصورتی خطا رخ میده که فایل توسط یه جریان دیگه در حال استفاده باشه ولی اگه تو سیستم عامل باز شده باشه ایجاد مشکل نمیکنه و پوشه پاک میشه

این یعنی اینکه باید اون جریانی که با فایل در ارتباط هست رو باید ببندی برای این کار میتونی اونو در یک استریم قرار بدی بعد استریم رو ببندی

Hossenbor
یک شنبه 21 خرداد 1391, 08:30 صبح
سلام دوست عزیز شرمنده جواب ندادم وقت نکردم بیام اینجا سر بزنم شما برای حذف این پوشه ابتدا محتویات اونو حذف کنید و اگر اقدام به حذف پوشه پر بکنید با خطا مواجه میشوید برای حذف اون فایلها ابتدا با فکر کنم GetFiles باشه و اگرنه دوستان تصحیح کنن جزو توابع directory هست سپس با استفاده از یک حلقه foreach فایلها رو شمارش کنید و با استفاده از تابع file.delete اونا رو حذف کنید سوالی بود در خدمتم

padidehco
یک شنبه 21 خرداد 1391, 09:13 صبح
سلام دوستان عزیز
از پاسختون خیلی ممنونم
اما مثل این که متوجه مشکل من نشدید
من با کد زیر می تونم اطلاعات داخل پوشه و خود پوشه را به طور یک جا پاک کنم.
Directory.Delete(@"d:/mahdi", true);


و نیازی به شمردن فایل های داخل پوشه نیست.
حال اگر اون پوشه بسته باشه به راحتی پاک می شه
اما اگر ما این پوشه را باز نگهداریم و از کد بالا استفاده کنیم خطا می گیره و نمی تونه پوشه را حذف کنه
دوستان من سی شارپ را از طریق کتاب یاد گرفتم و با اصطلاحات اون زیاد اشنا نیستم اگر کسی می تونه توضیح بده که "استریم" یعنی چی عالی می شه اگر مثال هم که داشته باشه چه بهتر.
-----------------------------------------------------------------------------
این یعنی اینکه باید اون جریانی که با فایل در ارتباط هست رو باید ببندی برای این کار میتونی اونو در یک استریم قرار بدی بعد استریم رو ببندی
دوست من از کجا باید بفهمم که چه جریانی با فایل در ارتباط هست و چطوری اون را ببندم
------------------------------------
پیشاپیش از پاسخ های خوبتون متشکرم

Hossenbor
یک شنبه 21 خرداد 1391, 10:05 صبح
بی زحمت اگه میشه اون خطا رو اینجا بذارین اخه تا جایی که من میدونم امکان حذف پوشه ای که توش فایل هست نیست مگر با خط فرمان

Hossenbor
یک شنبه 21 خرداد 1391, 10:20 صبح
دوست عزیز اینم پیدا کردم ببین کارت راه میفته
stackoverflow.com/questions/329355/cannot-delete-directory-with-directory-deletepath-true

padidehco
یک شنبه 21 خرداد 1391, 16:14 عصر
شلام دوست من
با این کد ترد پوشه را می ببنده و بعد پوشه را پاک می کنه
try
{
Directory.Delete( path, false );
}
catch ( IOException )
{
Thread.Sleep( 0 );
Directory.Delete( path, false );
}

تشکر می کنم از جواب های گرمتون
تشکر می کنم تا من را یاری کردید تا امروز نیز یک چیز جدید یاد بگیرم