Windows > 一時ファイル > 後で自動的に消えてくれるもの

投稿者: Anonymous
開発環境: C++ Builder XE4

Windows (7/8.1)において、一時ファイルを作成して利用したいと考えています。

使用イメージは以下です。
1. 自作ソフトからhtmlファイル(一部ファイル)を作成
2. 自作ソフトからChrome(またはIE)を起動し、htmlファイルを表示
3. ユーザがhtmlファイル閲覧を終えるとブラウザを閉じる

1から3のすべてを自作で管理している場合は、3の処理が終了次第、一時ファイルを削除すればいいのですが、3でブラウザにコントロールを渡しているため、いつ終了したかの判断は自作ソフト側ではできません。

そこで、一時ファイルが自動的に削除される方法があれば、と考えています。

Windowsのシステムでは、ある特定のフォルダにファイルを置いておけば自動的に削除される、というようなフォルダはありましたでしょうか? (linuxの/tmpのようなもの).

解決

ファイル作成時にFILE_FLAG_DELETE_ON_CLOSEを指定する、という回答がついていますが手元で試した範囲ではこの方法は動かなかったので別案を回答しておきます。

まず、Linuxの/tmpが自動で消えるのは、単に「古いファイルを消す」という処理が定期的に走っているからです。ただしこれは当たり前のことではなく、ディストリビューションによって異なります。ということで、/tmpに一時ファイルを置いたからと行って確実に消えるというものでもありません。

…というレベルで確実でなくてもよいがある程度消したい、という話でしたら、ファイル名のプレフィクス/ポストフィクスやサブフォルダに保存するなど自分が作った一時ファイルだということがわかる工夫をして、起動時に前回までに作られたファイルを消すという考え方もあります。

ある程度確実に一時的にファイルを消したいのであれば、呼び出した別プログラムの終了を待つ小さなプロセスを残しておく、という方法が考えられます。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *