C#/.NET 3.5, WindowsForms.Исключение IO - файл, используемый другим способом
У меня есть этот вид Windows, который отображает изображение из файла, и всякий раз, когда пользователь сохраняет запись этого кода:
string oldLoc = itemsBO.ImageLoc;
if (oldLoc != SystemSettings.NoImageLocation)
{
if (File.Exists(oldLoc))
{
try { File.Delete(oldLoc); }
catch (IOException ex)
{
MessageBox.Show("1 - " + ex.GetType().ToString() + " " + ex.Message);
}
}
}
string saveLoc = itemsBO.ImageSearchLoc + ".jpg";
if (File.Exists(saveLoc))
{
try { File.Delete(saveLoc); }
catch (IOException ex)
{
MessageBox.Show("2 - " + ex.GetType().ToString() + " " + ex.Message);
}
}
try
{
if (pictureBox2.Image != null)
pictureBox2.Image.Save(saveLoc, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (IOException ex)
{
MessageBox.Show("3 - " + ex.GetType().ToString() + " " + ex.Message);
}
Игнорирование бедных MessageBox сообщений, но ошибки в каждом Выгода заявлении. Он не может удалить «существующее» изображение, потому что он говорит, что он используется другим процессом. Не удается сохранить, потому что файл существует по тому же пути, потому что он не удаляется.
Это код, который устанавливает изображение при попытке добавить новое изображение;
Image clipImage = Clipboard.GetImage();
if (tabControl2.SelectedTab == tabPage5)
{
pictureBox1.Image = clipImage;
itemsBO.IsDirtyImage = true;
}
else if (tabControl2.SelectedTab == tabPage6)
{
pictureBox2.Image = clipImage;
itemsBO.IsDirtyImage2 = true;
}
Затем, когда форма загружает существующую запись с изображением, это код, используемый для получения/отобразить его:
byte[] bits = File.ReadAllBytes(imgfil);
msImage = new MemoryStream(bits, 0, bits.Length);
if (tabControl2.SelectedTab == tabPage5)
pictureBox1.Image = Image.FromStream(msImage);
else if (tabControl2.SelectedTab == tabPage6)
pictureBox2.Image = Image.FromStream(msImage);
imgfil быть путь к изображению, конечно.
Абсолютно не знаю, с чего начать ...
Вы читаете файл в этом месте где-то в своих кодах itemsBO.ImageLoc? – Gaurav
ImageLoc - это путь к файлу, да. – user1096207
Я имею в виду, что вы загружаете файл в этом месте itemsBO.ImageLoc в ваше приложение? Если да, как вы его загружаете – Gaurav