I display an image using c# in a pictureBox. Then I want to change the image's name. I can't because I get that the image is being used by another process.
I open the image this way
Image image1 = Image.FromFile("IMAGE LOCATION"); ;
pictureBox1.Image = image1;
Then try to change it's name this way and I get an IO exception saying " The process cannot access the file because it's being used by another process.
System.IO.File.Copy(@"OldName", @"NewName"); //copy changes name if paths are in the same folder
Isn't the object image1 holding the image? Why is the file still locked by the previous process? Any suggestions would be appreciated. Many thanks!
Have a look at this question: Free file locked by new Bitmap(filePath)
To free the lock you need to make a copy of the bits:
Image img;
using (var bmpTemp = new Bitmap("image_file_path"))
{
img = new Bitmap(bmpTemp);
}
Yes, picture box
control locking IO
file on the disk in that way.
If you want to rename linked file, you can:
or dispose picture box
, and after rename the file (if this is suitable for your app)
or assign to the picture box
a copy/clone of the image.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With