Eater
履歴と一時ファイルを削除
コマンドラインのジャンクプログラムです。行なっている処理は以下のフォルダ内にあるファイルの削除となります。実行したことにより、インターネットの履歴などが消えるため、該当フォルダ内のファイルを消すとどういうことが起こるのかがわかっている人だけがお使い下さい。
- Windows XP
- C:¥Documents and Settings¥*user*¥Local Settings¥History
- C:¥Documents and Settings¥*user*¥Local Settings¥Temporary Internet Files
- C:¥Documents and Settings¥*user*¥Local Settings¥Temp
- C:¥Documents and Settings¥*user*¥Recent
- Windows Vista/7
- C:¥Users¥*user*¥AppData¥Local¥Microsoft¥Windows¥History
- C:¥Users¥*user*¥AppData¥Local¥Microsoft¥Windows¥Temporary Internet Files
- C:¥Users¥*user*¥AppData¥Local¥Temp
「Windows で Firefox 3.5の起動が遅くなる問題の回避策」「WindowsでFirefox3.5の起動をスピードアップする方法」で削除するとよいとされているHistory,Temporary Internet Files,Temp,最近使ったファイルのフォルダ内にあるファイルを削除しているわけです。全部実行するものと、特定のフォルダ内だけ消去するものを用意しました。いずれのプログラムもダブルクリックするだけで処理が行なわれます。
※Firefoxの起動が遅くなる問題を修正したFirefox 3.5.1が公開されました。このジャンクプログラムを使うより修正版Firefoxを使いましょう。
| History | Temporary Internet Files | Temp | 最近使ったファイル | |
|---|---|---|---|---|
| Eater.exe | ○ | ○ | ○ | ○(2000/XPのみ) |
| HistoryEater.exe | ○ | - | - | - |
| TemporaryEater.exe | - | ○ | ○ | - |
| RecentEater.exe | - | - | - | ○(2000/XPのみ) |
ソースコード
EaterはDelphi7で開発しました。たいしたことをしていませんが、参考にしたい方はご覧になってください。テストが不十分なので問題のある部分があるかも……?
program Eater;
{$APPTYPE CONSOLE}
{$DEFINE DEBUG}
uses
SysUtils, ShlObj, Windows, Classes;
const
cst = 'Eater.exe -- History and Temporary delete utility.'
+chr($0D)+chr($0A)+'Copyright (C) S.Kawaida';
var
StdOut : TextFile;
udHistory : String;
udTIF : String;
udTemp : String;
udRecent : String;
FileList : TStringList;
FileAttr : Integer;
lp : Integer;
function GetSpecialFolder(Folder :integer):String;
var
path : array[0..MAX_PATH] of Char;
pidlist : PItemIDList;
begin
SHGetSpecialFolderLocation(0,Folder,pidlist);
SHGetPathFromIDList(pidlist,path);
Result:=path;
end;
function GetTempFolder:String;
var
path : array[0..MAX_PATH] of Char;
begin
GetTempPath(MAX_PATH,path);
Result:=path;
end;
procedure ExtractWildCardPath(name:String; attr:Integer; subdir:Boolean;
var _WildCardList: TStringList);
var
DirInfo,SearchInfo : TSearchRec;
DOSError : integer;
begin
DOSError:=FindFirst(name,attr,SearchInfo);
While (DOSError=0) do
begin
if (SearchInfo.name<>'.') and (SearchInfo.name<>'..') then
begin
_WildCardList.Add(ExtractFilePath(name)+SearchInfo.name);
end;
DOSError:=FindNext(SearchInfo);
end;
SysUtils.FindClose(SearchInfo);
DOSError:=FindFirst(ExtractFilePath(name)+'*.*',faAnyFile,DirInfo);
While (DOSError=0) and subdir do
begin
if (DirInfo.name<>'.') and (DirInfo.name<>'..')
and ((DirInfo.Attr and faDirectory)=faDirectory) then
begin
ExtractWildCardPath(ExtractFilePath(name)
+IncludeTrailingBackslash(DirInfo.name)
+ExtractFileName(name),attr,subdir,_WildCardList);
end;
DOSError:=FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);
end;
begin
if (AnsiPos('?',ParamStr(1))<>0) then
begin
AssignFile(StdOut,'');
Rewrite(StdOut);
Writeln(StdOut,cst);
Halt;
end;
FileList:=TStringList.Create;
try
udHistory:=IncludeTrailingBackslash(GetSpecialFolder(CSIDL_HISTORY));
udTIF:=IncludeTrailingBackslash(GetSpecialFolder(CSIDL_INTERNET_CACHE));
udTemp:=IncludeTrailingBackslash(GetTempFolder);
udRecent:=IncludeTrailingBackslash(GetSpecialFolder(CSIDL_RECENT));
{$IFDEF DEBUG}
AssignFile(StdOut,'');
Rewrite(StdOut);
Writeln(StdOut,udHistory);
Writeln(StdOut,udTIF);
Writeln(StdOut,udTemp);
Writeln(StdOut,udRecent);
Writeln(StdOut,IntToStr(Win32MajorVersion));
{$ENDIF}
FileAttr:=faAnyFile-faDirectory;
ExtractWildCardPath(udHistory+'*.*',FileAttr,True,FileList);
ExtractWildCardPath(udTIF+'*.*',FileAttr,True,FileList);
ExtractWildCardPath(udTemp+'*.*',FileAttr,True,FileList);
if (Win32MajorVersion=5) then
ExtractWildCardPath(udRecent+'*.*',FileAttr,True,FileList);
for lp:=0 to FileList.Count-1 do
begin
{$IFDEF DEBUG}
Writeln(StdOut,FileList[lp]);
{$ENDIF}
DeleteFile(PChar(FileList[lp]));
end;
finally
FileList.Free;
end;
end.動作環境・仕様とダウンロード
ソフトウェア仕様
対応OSWindows2000/XP/Vista
最終更新2009-7-14
Version1.0.0.0
DownloadDOWNLOAD (size:195KB)
種別Freesoftware
履歴
- 2009-7-14 version 1.0.0.0
- ちょいと開発してみた。
