帮助我如何从xp或更高版本的临时Internet文件中复制文件。 copyfile没有正在处理它。
我想让它像CopyFileEx(scr, dst):boolean
答案 0 :(得分:2)
我认为你使用的是错误的道路。此文件夹[ 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临时文件]目录的真实结构,如下所示:
BTW:别忘了在Dos中使用短路径名称。
答案 1 :(得分:0)
使用IE缓存的最佳方法是使用WinInet API,在这种情况下使用GetUrlCacheEntryInfo/Ex()
函数。传入原始URL,它将返回缓存文件的确切本地路径(以及其他内容),然后您可以根据需要进行复制。另请查看用于枚举缓存内容的FindFirst/NextUrlCache...()
函数。