以下のような処理を行おうとして際に、IO Exceptionが発生してしまうため、その原因を調査したいです。FTPにより該当のプログラムの動作するPCに画像が転送されてきた場合、以下の処理が発火し、src_pathからdst_pathにコピーを行うというものです。いかにコードと処理手順を掲載します。
ex. src_pathの"animal.jpg"をFTPにより上書き更新、プログラムはsrc_pathの画像の更新を検知して上書き更新された新しい"animal.jpg"を該当のパス(dst_path)にコピー
C#
1try { 2 System.IO.File.Copy(src_path, dst_path, true); 3 //src_path から dst_pathにファイルコピー 4} 5catch(Exception e) { 6 //エラー処理 7}
プログラムを動作させたところ、コピーは行われずに、エラー処理が実行されました。エラー内容は**IO Exception**でした。また、プログラムを停止させるとコピーが反映されます。
原因として
-
FTPによるファイル転送時、上書きが完了する前にSystem.IO.File.Copyが実行され例外発生
-
プログラムの他の排他制御が欠落している箇所が画像を参照しており、例外発生
の二つが考えられるのですが、プログラムの規模も大きいため、調査を行うための方法について知識を持っておられる方がいましたら、アドバイスをお願いいたします。
言語はC#です。
###追記(9/15)
原因は2番でした。特にプログラム中のどの部分にロックを保持されているかを確認できたらいいと考えています。よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー