【问题标题】:is there a way on how to copy Temporary Internet Files?有没有办法复制临时 Internet 文件?
【发布时间】:2011-01-24 05:05:51
【问题描述】:

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

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

【问题讨论】:

  • 没有工作 不知道那里发生了什么。考虑添加您收到的确切错误消息/异常,不要忘记包括有关您如何复制文件的信息(可能是一些代码)
  • 是您的临时 Internet 文件,还是其他用户拥有的版本?我确信 Windows 会保护用户免于读取其他用户的 Internet 缓存。

标签: delphi caching filesystems temporary-files special-folders


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2022-12-11
      • 1970-01-01
      • 2011-09-19
      • 2011-09-02
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多