wrongwrongな開発日記

情報系大学院生の忘備録

【VB】表示中の画像ファイルが削除できない問題の解決法【.Net】

表示中の画像ファイルが削除できない問題の解決法 - .NET Tips (VB.NET,C#...)
上記記事において「MemoryStream使った方がいい」という旨のコメントが有り、実際ボタンに設定した画像を削除しようとしてうまく行かなかったので(検証してないけどもしかして何かミスった?)、MemoryStreamを使ってやってみました。

コード

以下の通りです。ファイル内容をバイト列に読み込み、メモリーストリームにしてから画像を生成しています。
これで取得した画像を利用することで表示中の画像ファイルが削除できない問題が解決しました。

Public Function MakeNoLockImage(ByVal imagePath As String) As Image
    Dim fs = New IO.FileStream(imagePath, IO.FileMode.Open)
    Dim bs(fs.Length - 1) As Byte
    fs.Read(bs, 0, bs.Length)
    Dim thumbnail = Image.FromStream(New IO.MemoryStream(bs))
    fs.Dispose()
    Return thumbnail
End Function