発生するだろうな、とは思っていたが、やはり。ImageオブジェクトにFromFileを使ってイメージを取り込むと、何も考えずに元のファイルを読もうとしたときに「別のプロセスが使用中」とのエラーが出て削除できない。おそらく、
- ファイルを閉じる
- ファイルストリームなどを利用する
といった対処が必要なんだろうな....
やはり、FromStreamメソッドがある。これを使って下記のようにソースを書き換えることで対応完了。
Dim sourceStream As New IO.FileStream(pFileName, IO.FileMode.Open, IO.FileAccess.Read) Dim imageData As Image = Image.FromStream(sourceStream) 'Dim imageData As Image = Image.FromFile(pFileName) sourceStream.Close()
注意するのは、ストリームのクローズを忘れないようにすること。これをやらないと、結局同じことになる。