1

Windows 2003 上の私のアプリ (VB6 および C# 2008) で、ファイルを含むフォルダーの削除に関して同様の動作が 2 回見られました。私のコードは、いくつかの一時フォルダーを作成し、その後の処理のためにそのフォルダーにファイルを生成します。処理が完了すると、私のコードは生成された一時フォルダーを削除しようとします。削除操作はエラーなしで完了します。

ただし、さらに調べてみると、フォルダーがまだ Windows エクスプローラーに存在していることがわかります。このフォルダーを参照しようとすると、アクセス許可が拒否されたというエラーが発生します。その後、アプリは別のラウンドのファイルを処理し、一時フォルダーを再度作成しようとします。残念ながら、以前の Pending Delete が終了していないため、フォルダーを再度作成しようとすると、アクセス許可が拒否されたというエラーが発生します。アプリを閉じるまで、フォルダーは本当に削除されません。アプリを閉じるとすぐにフォルダが削除されます。アプリを閉じるまでフォルダーの削除操作がコミットされないのはなぜですか?

4

1 に答える 1

0

そのディレクトリのロックを誤って保持した可能性はありますか? これにより、アプリが終了するまでディレクトリを削除できない理由が説明されます。

いくつかのツールがあります - SysInternals を試してみてください - ファイル/ディレクトリのロックを一覧表示します。アプリを試して、ロックが保持されているかどうかを確認してください。その後、そのロックを強制的に削除できると思います-ディレクトリがすぐに消えるかどうかを確認してください。

于 2009-04-24T21:26:12.607 に答える