4

フォルダから画像を削除したい。しかし、「it is being used by another process 」とスローされます。

これが私のコードです:

fuProductImage.SaveAs(fileFolderPathTemp + fuProductImage.FileName);

 Bitmap orgImage = new Bitmap(fileFolderPathTemp + fuProductImage.FileName);
 ResizeAndSaveImages(orgImage, fileFolderPathLarge, fuProductImage.FileName, 66, 66);

 File.Delete(fileFolderPathTemp + fuProductImage.FileName);

このファイルを削除するにはどうすればよいですか?

4

1 に答える 1

6

リクエストの時点で、私の提案は2行目と3行目を次のようなusingブロックに入れることです。

fuProductImage.SaveAs(fileFolderPathTemp + fuProductImage.FileName);

using ( Bitmap orgImage = 
        new Bitmap(fileFolderPathTemp + fuProductImage.FileName) )
{
    ResizeAndSaveImages(
        orgImage, 
        fileFolderPathLarge, 
        fuProductImage.FileName, 
        66, 
        66);
}

File.Delete(fileFolderPathTemp + fuProductImage.FileName);

これが役立つ理由は、が正しく破棄さusingていることを確認し、関数を呼び出す前にメモリを解放してファイルハンドルを解放するためです。orgImageFile.Delete()

于 2013-01-21T15:04:31.000 に答える