سلام دوستان با استفاده از سی شارپ یک پوشه ایجاد می کنم
و درون ان فایل می ریزم
وقتی می خواهم پوشه را حذف کنم خطا می گیره
می خواهم پوشه و تمام محتوای داخل اون را حذف کنم
باید چی کار کنم؟
با تشکر
سلام دوستان با استفاده از سی شارپ یک پوشه ایجاد می کنم
و درون ان فایل می ریزم
وقتی می خواهم پوشه را حذف کنم خطا می گیره
می خواهم پوشه و تمام محتوای داخل اون را حذف کنم
باید چی کار کنم؟
با تشکر
سلام
استریم ایجاد فایل رو ببند بعد با یه استریم دیگه محتویاتشو حذف کن
سلام
درصورتی خطا رخ میده که فایل توسط یه جریان دیگه در حال استفاده باشه ولی اگه تو سیستم عامل باز شده باشه ایجاد مشکل نمیکنه و پوشه پاک میشه
این یعنی اینکه باید اون جریانی که با فایل در ارتباط هست رو باید ببندی برای این کار میتونی اونو در یک استریم قرار بدی بعد استریم رو ببندی
سلام دوست عزیز شرمنده جواب ندادم وقت نکردم بیام اینجا سر بزنم شما برای حذف این پوشه ابتدا محتویات اونو حذف کنید و اگر اقدام به حذف پوشه پر بکنید با خطا مواجه میشوید برای حذف اون فایلها ابتدا با فکر کنم GetFiles باشه و اگرنه دوستان تصحیح کنن جزو توابع directory هست سپس با استفاده از یک حلقه foreach فایلها رو شمارش کنید و با استفاده از تابع file.delete اونا رو حذف کنید سوالی بود در خدمتم
سلام دوستان عزیز
از پاسختون خیلی ممنونم
اما مثل این که متوجه مشکل من نشدید
من با کد زیر می تونم اطلاعات داخل پوشه و خود پوشه را به طور یک جا پاک کنم.
Directory.Delete(@"d:/mahdi", true);
و نیازی به شمردن فایل های داخل پوشه نیست.
حال اگر اون پوشه بسته باشه به راحتی پاک می شه
اما اگر ما این پوشه را باز نگهداریم و از کد بالا استفاده کنیم خطا می گیره و نمی تونه پوشه را حذف کنه
دوستان من سی شارپ را از طریق کتاب یاد گرفتم و با اصطلاحات اون زیاد اشنا نیستم اگر کسی می تونه توضیح بده که "استریم" یعنی چی عالی می شه اگر مثال هم که داشته باشه چه بهتر.
-----------------------------------------------------------------------------
این یعنی اینکه باید اون جریانی که با فایل در ارتباط هست رو باید ببندی برای این کار میتونی اونو در یک استریم قرار بدی بعد استریم رو ببندی
دوست من از کجا باید بفهمم که چه جریانی با فایل در ارتباط هست و چطوری اون را ببندم
------------------------------------
پیشاپیش از پاسخ های خوبتون متشکرم
بی زحمت اگه میشه اون خطا رو اینجا بذارین اخه تا جایی که من میدونم امکان حذف پوشه ای که توش فایل هست نیست مگر با خط فرمان
دوست عزیز اینم پیدا کردم ببین کارت راه میفته
stackoverflow.com/questions/329355/cannot-delete-directory-with-directory-deletepath-true
شلام دوست من
با این کد ترد پوشه را می ببنده و بعد پوشه را پاک می کنه
try
{
Directory.Delete( path, false );
}
catch ( IOException )
{
Thread.Sleep( 0 );
Directory.Delete( path, false );
}
تشکر می کنم از جواب های گرمتون
تشکر می کنم تا من را یاری کردید تا امروز نیز یک چیز جدید یاد بگیرم