본문 바로가기
Application/C#.net

Image Loading 후 파일 삭제

by 현이빈이 2011. 10. 26.
반응형


Image 객체에 파일을 불러온후 파일을 삭제할 경우 다른 프로세스 사용하고 있어 삭제할수 없는 오류가 뜬다.

아래 소스를 참고하자.

string sfileName = @"D:\data\001.jpg";
string tfileName = @"D:\data\001_bak.jpg";

Image source = Image.FromFile(sfileName );
Bitmap bitmap = new Bitmap(source);
Graphics g = Graphics.FromImage(bitmap);

g.FillRectangle(Brushes.Black, 0, 0, 100, 5);
//To do your code//

bitmap.Save(tfileName);
File.Delete(sfileName );


파일 삭제에서 Exception 이 발생하며 다음과 같은 에러 메세지가 나타난다.

"파일은 다른 프로세스에서 사용 중이므로 프로세스에서 액세스할 수 없습니다."


이럴경우 파일을 FromFile 이 아니고 Stream 에서 불러온후 사용해야 한다.

string sfileName = @"D:\data\001.jpg";
string tfileName = @"D:\data\001_bak.jpg";
using (FileStream fsIn = new FileStream(sfileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
 Image source = Image.FromStream(fsIn);

 Bitmap bitmap = new Bitmap(source);
 Graphics g = Graphics.FromImage(bitmap);

 g.FillRectangle(Brushes.Black, 0, 0, 100, 5);
// To do your code

 bitmap.Save(tfileName);
 File.Delete(sfileName);

 fsIn.Close();
}


 

반응형