画像ファイルを削除しようとすると、
「別のプロセスで使用されているため、プロセスはファイル~にアクセスできません。」
というエラーが出てデバックが通りませんでした。
自分がこのエラーが出たパタンは以下の通りです。
①クリップボードに画像を送った後、画像ファイルを削除しようとした時
②PictureBoxに画像を表示させた後、画像ファイルを削除しようとした時
②についてはこちらへ
//画像ファイルを削除
foreach (var item in Directory.GetFiles(FileName))
{
//ここでエラー
System.IO.File.Delete(item);
}
何でだと思っていろいろ調べたところ、下記のブログ様で解決できました。
大変助かりました。
[C#]System.IO.File.Delete()で別のプロセスで使用されているため、プロセ
結論としては、
FileStreamを使用してOpenした場合、きちんとCloseしないと
FileStreamがデータを保持したままになってしまうということでした。
なので、削除しようとしてもまだ他の奴が保持しているという
エラーとなっていたようです。
勉強になりました・・・。
また、画像データを表示させる場合は、フルパスを直接指定して、
Bitmapをインスタンスするよりも、Streamを用いて表示させた方が、
Closeできるので、タイトルのエラーメッセージが表示されなくて
いいと思います。
★ブログランキング始めました★
★ぺちぺち叩いていただけると幸せです★
サラリーマン ブログランキングへ