急求操作 C:/Documents and Settings/[用户名]/Local Settings/Temporary Internet Files 文件夹

  • 主题发起人 主题发起人 dinglinxiang
  • 开始时间 开始时间
D

dinglinxiang

Unregistered / Unconfirmed
GUEST, unregistred user!
急求操作 C:/Documents and Settings/[用户名]/Local Settings/Temporary Internet Files 文件夹的方法(50分)<br />急求操作 C:/Documents and Settings/[用户名]/Local Settings/Temporary Internet Files 文件夹的方法,各位大虾看清楚了,不是别的文件夹,操作普通文件夹的方法对这个没效果。 希望能给个例子,删除这个文件夹里面的文件
 
如果是在執行中的文件就删除不了啊
 
不删除也行,,,就取这个文件夹里面的所有文件的文件名
 
//删除COOKIES

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry, ShlObj, ShellApi, WinInet, ExtCtrls;

type
TForm1 = class(TForm)
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure DelRegCache;
var
reg:TRegistry;
begin
reg:=Tregistry.create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.DeleteKey('Software/Microsoft/Internet Explorer/TypedURLs');
reg.Free;
end;

function GetCookiesFolder:string;
var
pidl:pItemIDList;
buffer:array [ 0..255 ] of char ;
begin
SHGetSpecialFolderLocation(
application.Handle , CSIDL_COOKIES, pidl);

SHGetPathFromIDList(pidl, buffer);
result:=strpas(buffer);
end;

function ShellDeleteFile(sFileName: string): Boolean;
var
FOS: TSHFileOpStruct;
begin
FillChar(FOS, SizeOf(FOS), 0); {记录清零}
with FOS do
begin
wFunc := FO_DELETE;//删除
pFrom := PChar(sFileName);
fFlags := FOF_NOCONFIRMATION;
end;
Result := (SHFileOperation(FOS) = 0);
end;

procedure DelCookie;
var
dir:string;
begin
InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0);
dir:=GetCookiesFolder;
ShellDeleteFile(dir+'/*.txt');
end;

procedure DelHistory;
var
lpEntryInfo: PInternetCacheEntryInfo;
hCacheDir: LongWord ;
dwEntrySize, dwLastError: LongWord;
begin
dwEntrySize := 0;
FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
GetMem(lpEntryInfo, dwEntrySize);

hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
if hCacheDir &lt;&gt; 0 then
DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
FreeMem(lpEntryInfo);

repeat
dwEntrySize := 0;
FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^),
dwEntrySize);
dwLastError := GetLastError();
if dwLastError = ERROR_INSUFFICIENT_BUFFER then //如果成功
begin
GetMem(lpEntryInfo, dwEntrySize); {分配dwEntrySize字节的内存}
if FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) then
DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
FreeMem(lpEntryInfo);
end;
until (dwLastError = ERROR_NO_MORE_ITEMS);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
screen.cursor:=crHourGlass;
DelRegCache;
DelCookie;
DelHistory;
finally
screen.cursor:=crDefault;
end;
end;

end.
 
上面代码调试过了,是我想要的效果[:(]不过怎么这么长啊,我以为这个功能代码应该比较短的,得慢慢研究了[:D] 散分
 
japhe, 当cookies无法删除文件的时候上面一段代码会报错,异常夜解决不了,该怎么解决啊
 
这个我也碰到过,在WIN2K中没问题,在XP系统中好象是会出错的,呵呵。
 
后退
顶部