0


0

ソフトウェアのアンインストール後にexplorer.exeによってロックされたsqlite dbのフォルダー

私はsqliteを使用しているアプリでアンインストールの問題があります:インストール中に空のsqlite dbが作成されます [CommonAppData]\MyApp\mydb.sqlite, e.g. C:\Documents and Settings\All Users \ Application Data \ MyApp \ mydb.sqlite。 アプリをアンインストールすると、接続しているアプリケーションは削除されますが、sqlite dbを削除できません。 プロセスエクスプローラーを使用すると、(sqliteファイルではなく)MyAppフォルダーがロックされているのはexplorer.exeであることがわかります。

私は以前にこの種のものを見たことがありません。 これは、アプリが接続を正しく閉じ/破棄していないことが原因である可能性はありますか? いくつかのレベルで、いくつかのスレッドとプロセスがdbファイルにアクセスしているという事実をウィンドウが管理し、ロックを処理することを理解しています。 アプリが接続などを正しく閉じていないと、ファイルがロックされているかどうかについてウィンドウが混乱する可能性はありますか?

それともそれは不可能であり、それは単に私のMSIで何か間違っているに違いありませんか?

提案をありがとう!

更新:そのフォルダに新しいファイルを作成した場合、フォルダまたはファイルを削除できないだけでなく(例: 新しいtxt doc)そのファイルを削除できません! だから、フォルダの奇抜なロック…​.

更新:実際には…​それは単にそのフォルダのアクセス許可かもしれません! 私のmsiでは、そのフォルダにアクセス許可を設定していましたが、削除権限を与えていないと思うので、アンインストールしたときに削除するアクセス権がありません :-/

1 Answer


1


SysInternalsコレクションのhandle.exeを使用して、ファイルの残りのハンドルがあるものを見つけます。

MSIである可能性もあるため、正しい順序で物事を行っていることを確認してください。 msiexec / u mymsi.msi / lv * mylog.txt