Что нового

Распаковка RAR-архива с открытием распакованного файла с произвольным названием

Pavel

Новичок
Сообщения
125
Репутация
3
Доброго времени суток! Помогите с решением следующей проблемы - почти сумел решить её сам, но не хватает опыта и знаний на этом этапе.

Дано: есть архив 'test.rar'. В архиве всегда лежит один xls-файл. Архив 'test.rar' обновляется и имя xls-файла в нем изменяется.
Задача: распаковать xls-файл из архива и открыть его.
Дополнительная необязательная задача: использовать как можно меньше кода. Можно использовать средства WinRar (в частности - 'unrar.exe').
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Код:
Local $sUnRARDir = @ScriptDir & '\UnRARDir', $sRARFile = @ScriptDir & '\RARFile.rar', $sUnRARExe = @ProgramFilesDir & '\WinRAR\UnRAR.exe', $sStdOut, $aRegExpArray
If DirGetSize($sUnRARDir) Then DirRemove($sUnRARDir, 1)
DirCreate($sUnRARDir)
$iPID = Run($sUnRARExe & ' e "' & $sRARFile & '" "' & $sUnRARDir & '"', @WorkingDir, @SW_HIDE, 2)
Do
	$sStdOut &= StdoutRead($iPID)
Until @error
$aRegExpArray = StringRegExp($sStdOut, StringReplace($sUnRARDir, '\', '\\') & '.*?\.xls', 1)
If IsArray($aRegExpArray) And FileExists($aRegExpArray[0]) Then ShellExecute($aRegExpArray[0], '', $sUnRARDir, 'open')
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
dwerf, огромное спасибо. Но, есть проблема - в архиве файл с русским названием. А $aRegExpArray[0] выдаёт кракозябру, вместо русских букв, и, следовательно, файл не открывается. Что можно с этим поделать?
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Всем огромное спасибо и респект! Всё работает :IL_AutoIt_1:
 
Верх