Есть ли способ, как скопировать временные файлы Интернета? - PullRequest
1 голос
/ 24 января 2011

помогите мне, как скопировать файл из временных файлов Интернета на XP или выше. copyfile не работает над этим.

я хочу сделать это как CopyFileEx(scr, dst):boolean

Ответы [ 2 ]

2 голосов
/ 24 января 2011

Я думаю, вы используете неправильный путь. эта папка [ Интернет временные файлы ] имеет особую структуру, чтобы увидеть эту структуру, попробуйте найти ее с атрибутом [ 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

Итак, если вы ищете денежные файлы, вы можете найти их в этих случайных подпапках, но вам нужно написать алгоритм поиска для поиска в этих папках нужного вам файла, а затем вы можете скопировать его, используя его реальный путь .

EDIT: также вы можете увидеть реальную структуру каталога [ временных файлов Интернета ], используя команду dir из dos CMD следующим образом: enter image description here

Кстати: не забывайте использовать имя короткого пути в Dos.

0 голосов
/ 24 января 2011

Лучший способ работы с кешем IE - использовать для этого WinInet API, в данном случае GetUrlCacheEntryInfo/Ex(). Передайте исходный URL-адрес, и он вернет точный локальный путь к кэшированному файлу (среди прочего), который затем можно будет скопировать при необходимости. Также взгляните на функции FindFirst/NextUrlCache...() для перечисления содержимого кэша.

...