1

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

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

4

2 回答 2

3

我认为您使用了错误的路径。此文件夹 [ 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;

您会在那里找到一些文件夹,例如(Content.IE5、Content.MSO、AntiPhishing…),在文件夹 Content.IE5 下,您还可以找到具有如下随机名称的子文件夹:

<path>temporary internet files\content.ie5\randomfoldername

因此,如果您正在寻找现金文件,您可以在这些随机子文件夹中找到它,但是您必须编写搜索算法来在这些文件夹中搜索您想要的文件,然后您可以使用其真实路径复制它。

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

顺便说一句:不要忘记在 Dos 中使用短路径名称。

于 2011-01-24T07:58:11.980 回答
0

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

于 2011-01-24T20:03:52.290 回答