2009/01/24(Sat)C#でFile.Deleteするときの注意

2009/01/24 16:35 Languages::C#
例えば、Bitmapオブジェクトに画像ファイルを読み込んだ後、そのファイルを削除したいというとき、単純に
Bitmap bmp = new Bitmap(filename);
File.Delete(filename);
と書くとIOExceptionが発生する。
これを回避するには…

一旦別のBitmapにつくってコピーすればよい。
Bitmap bmp;
using(Bitmap tmp = new Bitmap(filename)){
    bmp = new Bitmap(tmp);
}
File.Delete(filename);
大したことないTipsだが、ちょっとハマったのでエントリを書いた。
Bitmapに限らず他の場合でも起こりうるかもしれない。
同じ手法でなんとかなるんじゃないのかな?