Windows Temporary Folderについて

| 2008年3月2日日曜日
 C#なんかでTempフォルダを使いたくなった時、その場所は、System.IO.Path.GetTempPath()で取得するけど、この時、得られるフォルダの場所は環境変数に定義されている順に先に見つかったのを返してくる。具体的には、

1 TMP C:\Document and Setting\LocalSetting\Temp\
2 TEMP C:\Document and Setting\LocalSetting\Temp\
3 USERPROFILE C:\Document and Setting\

 っとこれに関しては、これで良いんだけど、気になったのがこのTempフォルダはいつクリアされるのか?っという事だ。
 Tempフォルダというとなんとなく、システム側で勝手に消してくれると思っていたけど、調べてみると実は違った。
 確かに、ディスクのクリーンアップで消してはくれるけど、これは勝手にWindowsがしてくれる訳じゃなく、ユーザが自分でする必要がある。それまでは、ユーザが自分でわかってTemp領域のファイルをクリアするまで、そのまま残り続けるって事になる。
 もし、自分で作ったアプリケーションでTempフォルダを使うなら、そこに置いた一時ファイルはちゃんと、アプリで消してあげないと、どんどん溜まってしまうことになる。まぁ溜まっても限界まできたら「ディスクのクリーンアップをして下さい。」メッセージがでるから、ほって置いてもかまわないのかもしれないし、最近のHDDはデカイからそれほど問題にはならないのかもしれない。
 でも、少なくとも、自分が書く時には汚した所は自分で綺麗にして終了させるようにしたほうが礼儀正しいだろう。

0 コメント: