2012-04-11 4 views
1

私は、Windowsプラットフォーム用に管理しているアプリケーションスイートを持っています。私は最近、共有ライブラリにアプリケーションを終了した後にディレクトリを削除するコードを追加しました。 1つのアプリケーションでは、削除は成功です。もう一方では、ファイルが別のプロセスで使用中であることを伝えるメッセージが表示されます。プロセスではファイルが開いていますか?

プロセスエクスプローラをダウンロードした後、私は既に予想していたことを学びました。フォルダを保持するプロセスが削除しようとしています。

答えがGoogleの場合、「XYZはアンロック、プロセスエクスプローラなどがありますが、どのプロセスがそのファイルを保持しているか調べるにはXYZをダウンロードしてから、そのプロセスを終了する必要があります。私は、ファイルを保持しているプロセスを知っているが、私はそれを終了する場合、どのようにフォルダを削除することができますか?

誰かがフォルダを開いたままのコードを見つける方法について考えていますか?どのプロセスがどのファイルを使用しているかを調べるために利用できるツールのうち、フォルダ内のどこにプロセスが開いているかを見つけるために使用できるツールはどれですか?

+0

プログラムでファイルを開いた場合は、ファイルを削除する前に閉じておく必要があります。より正確なヘルプが必要な場合は、コードを投稿する必要があります –

+0

おそらくそのディレクトリに書き込むコードですか?あなたはそのコードを投稿するとどう思いますか? – Steve

+0

私は自分のプログラムスタックで 'fstream'オブジェクトをチェックして、それらが閉じられているかどうかチェックします。 – suszterpatt

答えて

1

ファイルが開いている「プロセス内の場所」の概念はありません。例えば。意図しないオープンファイルの非常に一般的な原因は、リークされたハンドルです。つまり、ファイルハンドルの場所がプロセス内に存在しないため、ファイルが正確に開いていることを意味します。

関連する問題