PDA

View Full Version : خطای The process cannot access the file because it is being used by another process در تغییر فایل



mousa1992
پنج شنبه 04 آبان 1391, 01:07 صبح
سلام دوستان
نمیدونم عنوان خوبی شاید نباشه - ممنونم از توجهتون
تو برنامه ام عکس هایی رو لود میکنم (از مسیری روی کامپیوتر) و کاربر باید اجازه ی حذف اون عکس ها رو داشته باشه ( حذف از مسیری که قرار گرفته) ولی اجازه ی حذفشون رو ندارم و میگه این فایل ها توسط یه process دیگه استفاده میشن و نمیشه حذف کرد
چطوری میتونم این کارو انجام بدم ؟؟
The process cannot access the file '...' because it is being used by another process.
متشکرم

Y_Safaiee
پنج شنبه 04 آبان 1391, 02:38 صبح
سلام دوست من
اروری که نشون میده کاملا منطقی و درسته چون شما عکس رو به برنامتون فراخوانی کردین و اون در حافظه وجود داره اما راه برطرف این مشکل :

1. اگه در هنگام لود از کد زیر استفاده میکنین :
pictureBox1.Image = Image.FromFile(opn.FileName);
اونو به
pictureBox1.ImageLocation = opn.FileName;
تغییر بدین

2.به داخل حافظه بیارینش و بعد به پیکرباکستون تخصیصش بدین :

FileStream fs = new FileStream(opn.FileName, FileMode.Open, FileAccess.Read);
byte[] ar = new byte[fs.Length];
fs.Read(ar, 0, (int)fs.Length);
fs.Close();
MemoryStream ms = new MemoryStream(ar);
pictureBox1.Image = Image.FromStream(ms);
موفق باشین
بایت بایت