Исключения The process cannot access the file "FilePath" because it is being used by another process

есть такая проблема

private void button1_Click(object sender, EventArgs e)
        {
            System.IO.File.Move("resours/image/printscreen.txt", "resours/image/printscreen.jpg");
            this.pictureBox1.Image = Image.FromFile("resours/image/printscreen.jpg");
            File.Delete("resours/image/printscreen.jpg"); // думал ошибка исчезнет 
        }

        private void button2_Click(object sender, EventArgs e)
        {
            System.IO.File.Delete("resours/image/printscreen.jpg"); // вот тут появляется исключения 
            System.IO.File.Move("resours/image/printscreen.txt", "resours/image/printscreen.jpg");
            this.pictureBox1.Image = Image.FromFile("resours/image/printscreen.jpg");
        }

мне надо както виходить из файла после переобразования , есть using но как его использвоть при system.io.file.delete ?

сперва работает функция button1_Click(); после button2_Click();


Ответы (1 шт):

Автор решения: OXYGEN

Проблема заключается в:

  1. this.pictureBox1.Image = Image.FromFile("resours/image/printscreen.jpg"); вы говорите picturebox1 где брать фото , он берет использует эти данные 2.File.Delete("resours/image/printscreen.jpg");а потом вы хотите удалить

чтобы удалить должно быть так : this.pictureBox1.Image = null; // перестать использовать File.Delete("resours/image/printscreen.jpg"); //удалить

если все же надо отображать фото то пишите его в память а после удаляйте фото вот ссылка : https://stackoverflow.com/questions/9088443/view-image-file-without-locking-it-copy-to-memory

→ Ссылка