Delphi 有没有办法复制Internet临时文件?

Delphi 有没有办法复制Internet临时文件?,delphi,caching,filesystems,temporary-files,special-folders,Delphi,Caching,Filesystems,Temporary Files,Special Folders,帮助我如何从xp或更高版本的Internet临时文件复制文件。copyfile无法处理它 我想让它像CopyFileEx(scr,dst):boolean我认为您使用了错误的路径。此文件夹[Internet临时文件]具有特殊结构,若要查看此结构,请尝试使用[faAnyFile]属性进行搜索,如下所示: procedure TForm2.Button2Click(Sender: TObject); var path: Array[0..MAX_PATH] of Char; sRec: TS

帮助我如何从xp或更高版本的Internet临时文件复制文件。copyfile无法处理它


我想让它像
CopyFileEx(scr,dst):boolean

我认为您使用了错误的路径。此文件夹[Internet临时文件]具有特殊结构,若要查看此结构,请尝试使用[faAnyFile]属性进行搜索,如下所示:

procedure TForm2.Button2Click(Sender: TObject);
var
  path: Array[0..MAX_PATH] of Char;
  sRec: TSearchRec;
begin
  SHGetFolderPath(0, CSIDL_INTERNET_CACHE, 0,0, @path);
  if FindFirst(PATH+'\*.*', faAnyFile, sRec) = 0 then
    Begin
      repeat
        ListBox1.Items.Add(sRec.Name);
      until (FindNext(sRec) <> 0);
      FindClose(sRec);
    End;
end;
procedure TForm2.按钮2点击(发送方:TObject);
变量
路径:字符的数组[0..MAX_path];
sRec:TSearchRec;
开始
SHGetFolderPath(0,CSIDL_INTERNET_缓存,0,0,@path);
如果FindFirst(路径+'\*.*',faAnyFile,sRec)=0,则
开始
重复
ListBox1.Items.Add(sRec.Name);
直到(FindNext(sRec)0);
FindClose(sRec);
结束;
结束;
您将在那里找到一些文件夹,如(Content.IE5、Content.MSO、AntiPhishing…),在folder Content.IE5下,您还可以找到具有以下随机名称的子文件夹:

<path>temporary internet files\content.ie5\randomfoldername
临时internet文件\content.ie5\randomfoldername
因此,如果您正在查找现金文件,您可以在这些随机子文件夹中找到它,但您必须编写搜索算法来搜索这些文件夹中您想要的文件,然后您可以使用其真实路径复制它

编辑: 您还可以使用dos CMD中的dir命令查看[Internet临时文件]目录的真实结构,如下所示:


顺便说一句:别忘了在Dos中使用短路径名。

使用IE缓存的最佳方法是使用WinInet API,在本例中使用
GetUrlCacheEntryInfo/Ex()
函数。传入原始URL,它将返回缓存文件的确切本地路径(以及其他内容),然后您可以根据需要复制该文件。另外,请看一下用于枚举缓存内容的
FindFirst/NextUrlCache…()
函数。

不起作用,不知道那里发生了什么。。考虑添加正确的错误消息/异常,不要忘记包含如何复制文件(可能是一段代码)的信息,是您的临时Internet文件,还是另一用户拥有的版本?我确信Windows可以保护用户不读取其他用户的internet缓存。