(方法はなんでもOkですが、Windows上で動作するのが条件です)
前提1:他のプロセスにメッセージを送り、ファイルを開放する指示を出すことはできない
前提2:他のプロセスには例外が組み込まれていてファイルが削除されても正常に異常処理を行うものとする
openfiles /disconect /id "指定のプロセスID"
をプログラムから実行すればいいんじゃないでしょうか?
http://www.atmarkit.co.jp/fwin2k/win2ktips/306openfiles/openfile...
vista以降ならAPIでファイルを検出できるみたいです。
http://yebisuya.dip.jp/WinTips/tips4.html
「他のプロセス」が確実にいなくなるWindows再起動時に、ファイルを削除する方法でもOKでしょうか。
MoveFileEx(lpszExisting,NULL,MOVEFILE_DELAY_UNTIL_REBOOT);
で可能です。
MoveFileExに関するMSDNの説明はこちら
参考になりました。
再起動しても問題ないと判断できる場合は
シンプルで良い方法だと思います。
回答ありがとうございました。
回答ありがとうございます。
リソースを食ってしまうのがネックですね。
openfiles工夫すればいろいろ出来そうな気がします。
Vistaの情報につきまして、申し訳ありませんがXPでも動作させたいので
今回はあまり検討していませんが、使えるAPIも少しずつ更新されていることを
認識いたしました。