PDA

View Full Version : پاک کردن یک فولدر یا فایل



hassan_kahrizy
جمعه 30 اردیبهشت 1384, 04:42 صبح
بسمه تعالی
سلام خدمت تمامی دوستان

من تصاویر موجود در یک فولدر را در یک list viewنمایش دادم
ولی در هنگام پاک کردن یک فایل و یا یک فولدر با error مواجه می شم
که فایل یا فولدر مورد نظر در حال استفاده است
هر کاری کردم جواب نگرفتم حتی تمامی تصاویر موجود در imagelist را هم موقع پاک کردن خالی کردم اما
اگر راهی به نظرتون می رسه ممنون می شم کمک کنید
:flower:

Arya Lee
جمعه 30 اردیبهشت 1384, 10:47 صبح
سلام آقای کهریزی

دلیل اینکه شما پس از اضافه کردن فایل ها به ListView نمی توانید آنها را حذف کنید، این است که Stream مربوط به فایل باز می ماند. حتا اگر تصویرها را هم از ImageList حذف کنید، باز هم به دلیل اینکه GarbageCollector در همان لحظه فایل را آزاد نمی کند، بنابراین نمی توانید آن را حذف نمایید.
راه بهتر استفاده از یک FileStream برای باز کردن فایل و اضافه کردن آن به ListView است. به کد زیر توجه کنید:

این دو اعلان را در سطح کلاس انجام دهید:


const string FileName = "Blue Rose.jpg";
FileStream fs;

سپس این کد را برای اضافه کردن یک فایل به ListView بنویسید: (lvImages یک شی از ListView است)


fs = new FileStream( FileName, FileMode.Open );
Bitmap img = new Bitmap( fs );
lvImages.LargeImageList = new ImageList();
lvImages.LargeImageList.Images.Add( img );
lvImages.Items.Add( "Blue Rose.jpg" );
lvImages.Items[ 0 ].ImageIndex = 0;

بسیار خوب اکنون کد حذف تصویر از ListView و حذف فایل آن:


lvImages.Items.RemoveAt( 0 );
lvImages.LargeImageList.Images.RemoveAt( 0 );
fs.Close();
File.Delete( FileName );


پیروز باشید
خدانگهدار
آریا

hassan_kahrizy
دوشنبه 02 خرداد 1384, 06:22 صبح
بسمه تعالی
با سلام خدمت آقا آریا
و با تشکر از لطف شما
:flower: