「既に存在するファイルを作成することはできません」の原因調査

 だいぶ前から、開発機にbcc32pch(C++Builderコンパイルを高速化するパッケージ)をインストールしようとすると、

既に存在するファイルを作成することはできません (183)

というエラーが出てインストールできない状態が続いていた。このままずっと放置し続けるのも気持ちが悪いので、原因を調べて解決することにした。

 このエラーメッセージからはどのファイルが「既に存在するファイル」なのか分からない。まずはどのファイルが問題なのかを特定することから始める。
 『インサイドMicrosoft Windows 第4版〈下〉』のファイルシステムの項をぱらぱらと眺めると、FilemonというフリーのツールでWindowsのファイルアクセスを監視することができるらしい。早速GoogleでFilemonを探してダウンロードした。

 Filemonを起動するとファイルアクセスの監視(キャプチャ)が始まるので、監視させたままbcc32pchのインストールを行う。問題のエラーが表示されたらFilemonの監視を停止し、ログを調べてエラーに関係のありそうな箇所を探す。
 ログの"Result"の列を上から順に見ていくと、PATH NOT FOUND という箇所が見つかった。どうやらインストーラが一時フォルダを作ろうとした時に、パスが存在しないのが原因だったらしい。
 より正確に言うと、そのパスがフォルダではなく、代わりに同名のファイルが存在していた。なんでそんなファイルが出来たのかは分からない。ログオンユーザーを作ったり消したりしているときに間違って出来てしまったのかもしれない。
 とりあえずこのファイルを削除したらインストーラがちゃんと起動した。

 分かってみればくだらない原因だった。コンピュータのトラブルは得てしてそういうものだけど。