Что нового

Как скопировать файл из кэша IE

eropov

Jury
Сообщения
195
Репутация
25
Здравствуйте. Есть сайт который кэшируется и мне нужно из кэша IE скопировать файл.
Кэш имеет путь (C:\Documents and Settings\User\Local Settings\Temporary Internet Files), в нем есть файлы, скажите как скопировать файл по имени, из этой системной папки.
 

Mur

Осваивающий
Сообщения
132
Репутация
32
http://autoit-script.ru/index.php?topic=3172.0 так не вариант?
Можно этой программой:
Код:
http://www.nirsoft.net/utils/ie_cache_viewer.html


Или вы просто не можете её открыть?
из этой системной папки
 
Автор
E

eropov

Jury
Сообщения
195
Репутация
25
Mur
Можно этой программой:
http://www.nirsoft.net/utils/ie_cache_viewer.html
Мне бы хотелось копировать файл без сторонних программ.
С системными папками и файлами, ни разу не работал, пробовал стандартные функции для копирования файлов, не получилось.
 

Mur

Осваивающий
Сообщения
132
Репутация
32
Возможно я просто переиграл с правами доступа у себя :smile:
тогда вот это должно помочь:
http://autoit-script.ru/index.php?topic=3181.0

Не знаю почему, но я вдруг подумал, что вы забыли заменить стандартный путь на свой:
C:\Documents and Settings\User\Local Settings\Temporary Internet Files
 

Mur

Осваивающий
Сообщения
132
Репутация
32
То есть, ни функция FileCopy()
ни это (например, 7):
Run("fdump.exe /V C:\Documents and Settings\User\Local Settings\Temporary Internet Files C:\ie_files", "", @SW_HIDE)
Причём для последней нужно скачать специальную утилиту, которая скопируют файл в любом случае.

Я так же спросил, можете ли вы открыть эту папку?
Не забыли ли случайно сменить стандартный путь на свой?
Как вы, в конце-концов, использовали функцию filecopy()?
 
Автор
E

eropov

Jury
Сообщения
195
Репутация
25
asdf8
А винда какая?
На ХР с правами админа все копируется, даже "Index.dat"
Да у меня стоит XP.

Mur
Не забыли ли случайно сменить стандартный путь на свой?
Как вы, в конце-концов, использовали функцию filecopy()?

Пробовал по разному, вот так пробовал скопировать содержимое папки:
Код:
FileSetAttrib ( @UserProfileDir & "\Local Settings\Temporary Internet Files", "-SH")
$res = FileGetAttrib("C:\Documents and Settings\User\Local Settings\Temporary Internet Files\")
MsgBox(1, $res, @error)

$res = FileCopy(@UserProfileDir & "\Local Settings\Temporary Internet Files\*.*", "C:\1\")
MsgBox(1, $res, @error)
В начале снял 2 атрибута системный и скрытый, потом копировал содержимое папки кэша, ни чего не выходит.
Файлы кэша имеют имена протокол + домен + путь, как их копировать. Нажимал на свойстсво файла, пробовал обратиться по имени файла в кэше, тоже ни чего.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
eropov,
Эти файлы лежат в подпапках, поэтому и не копируются. Так у меня на XP все копируется.
Код:
;#include <Array.au3>

$aReturn = _FileDirList(@UserProfileDir & "\Local Settings\Temporary Internet Files", '*.png;*.jpg;*jpeg;*.gif', 1)
If @error Then Exit -33
;_ArrayDisplay($aReturn)
For $i = 1 To $aReturn[0]
	FileCopy($aReturn[$i], @ScriptDir & '\TestIE\', 9)
Next

; #FUNCTION# ====================================================================================================
; Name...........:  _FileDirList
; Description....:  Search files and\or folders in a specified path (uses system Dir command)
; Syntax.........:  _FileDirList($sPath [, $sFileMask = "*" [, $iFlag = 0 [, $iSubDir = 1 [, $iSort = 0]]]])
; Parameters.....:  $sPath     - Path to search the file.
;                   $sFileMask - [Optional] Filter to use, default is "*". Search the Autoit3 helpfile for the word "WildCards" For details.
;                   $iFlag     - [Optional] Specifies whether to return files folders or both:
;                                                                                               $iFlag = 0 - Files and folders (default)
;                                                                                               $iFlag = 1 - Only files
;                                                                                               $iFlag = 2 - Only folders
;                   $iSubDir   - [Optional] Specifies whether to search in subfolders or not:
;                                                                                               $iSubDir = 1 - Search in subfolders (default). Returns full pathes.
;                                                                                               $iSubDir = 0 - Search without subfolders (only in $sPath). Returns filenames only.
;                   $iSort     - [Optional] Specifies whether to sort the output list (in alphabetic order) or not (default is 0 - do not sort).
;
; Return values..:  Success    - An array with the following elements:
;                                                                      $aArray[0] = Number of Files\Folders returned
;                                                                      $aArray[1] = 1st File\Folder
;                                                                      $aArray[2] = 2nd File\Folder
;                                                                      $aArray[3] = 3rd File\Folder
;                                                                      $aArray[n] = nth File\Folder
;                   Failure    - 0
;                      @Error:    1 = Path not found or invalid
;                                 2 = No File(s) Found
;
; Author.........:  G.Sandler (CreatoR), amel27.
; Modified.......:
; Remarks........:  This function uses system Dir command, to speed up the search.
; Related........:
; Link...........:  http://autoit-script.ru/index.php/topic,8266.msg55775
; Example........:
; ===============================================================================================================
Func _FileDirList($sPath, $sFileMask = "*", $iFlag = 0, $iSubDir = 1, $iSort = 0)
	Local $sOutBin, $sOut, $aOut, $aMasks, $sRead, $hDir, $sAttrib, $sFiles

	If Not StringInStr(FileGetAttrib($sPath), "D") Then
		Return SetError(1, 0, 0)
	EndIf
	If $iSubDir = 1 Then
		$sAttrib &= ' /S'
	EndIf
	If $iSort = 1 Then
		$sAttrib &= ' /O:N'
	EndIf
	Switch $iFlag
		Case 1
			$sAttrib &= ' /A-D'
		Case 2
			$sAttrib &= ' /AD'
		Case Else
			$sAttrib &= ' /A'
	EndSwitch
	$sOut = StringToBinary('0' & @CRLF, 2)
	$sPath = StringRegExpReplace($sPath, '\\+$', '')
	$sFileMask = StringRegExpReplace($sFileMask, '^;+|;+$', '')
	$sFileMask = StringRegExpReplace($sFileMask, ';{2,}', ';')
	$aMasks = StringSplit($sFileMask, ';')
	For $i = 1 To $aMasks[0]
		If StringStripWS($aMasks[$i], 8) = "" Then
			ContinueLoop
		EndIf
		$sFiles &= '"' & $sPath & '\' & $aMasks[$i] & '"'
		If $i < $aMasks[0] Then
			$sFiles &= ';'
		EndIf
	Next
	$hDir = Run(@ComSpec & ' /U /C DIR ' & $sFiles & ' /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
	While 1
		$sRead = StdoutRead($hDir, False, True)
		If @error Then
			ExitLoop
		EndIf
		If $sRead <> "" Then
			$sOut &= $sRead
		EndIf
	WEnd
	$aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
	If @error Or UBound($aOut) < 2 Then
		Return SetError(2, 0, 0)
	EndIf
	$aOut[0] = UBound($aOut) - 1
	Return $aOut
EndFunc   ;==>_FileDirList
 
Верх