開いているファイルの移動について

MoveFileで指定したフォルダ内のファイル全てを別のフォルダへ移動させたいのですが、
「ファイルが別のプロセスで使用されているため、プロセスはファイルにアクセスできません。」のエラーが出ます。
フォルダ内のファイルを強制的に閉じる、もしくは開かれているファイルは無視をして、閉じられているファイルのみを移動させる方法はありませんか?

MoveFileをTry~Catchで括って、例外の処理には何も入れなければ、エラー発生時、発生したエラーを無視して何もせずに処理を続行してくれると思います。

@HANACCHI さんのは「開かれているファイルを無視して」 のほうですね。

これは難しくて、「誰か(何かしらのプロセス)が開いていること」はわかっても、「誰(どのプロセス)が開いているか」は例外情報から取得できないはずなので、上記の実装が現実的かと思います。
動かせないファイルがあった場合には実行者に通知できるように実装しておくといいかもしれませんね。

1 Like

ご返答誠にありがとうございます。

後出しで申し訳ありませんが、最初に指定したフォルダ内のファイルを取得し、ファイルがあったら処理するようにループさせています。
なので、閉じられているファイルが全て移動しても、開いているファイルがフォルダ内に残っているので、そこで止まってしまいます。(ずっと移動しようとしてしまいます。)

相談した結果、開かれているファイルがある時点で通知するように致しました。

1 Like

ご返答誠にありがとうございます。
フォルダ内のファイルを強制的に閉じるのは難しいのですね・・・。
相談した結果、開かれているファイルがある時点で通知するように致しました。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.