- Сообщения
- 5,379
- Репутация
- 2,724
Проблема в следующем:
Увидели? Если нет, то поясню. Вы начинаете перечислять пути в массиве $array, начиная с индекса 1:
Но первый действительный путь находится под индексом 0:
и
Таким образом происходит нессответствие путей и файлов в архиве, что и приводит к неправильному извлечению файлов и, как следствие, к ошибке.
P.S.
Если хотите сохранить структуру папок, то записывайте путь в архив.
Код:
For $i = 1 To UBound($f_s) - 1
...
$array[$i - 1] = StringRegExpReplace($f_s[$i], '.*' & $folder_name[1], '')
...
Next
Код:
For $i = 1 To UBound($array) - 1
$n_f = _FO_PathSplit($array[$i])
DirCreate($path_unpack & '\' & $folder_name[1] & $n_f[0])
Next
Увидели? Если нет, то поясню. Вы начинаете перечислять пути в массиве $array, начиная с индекса 1:
Код:
For $i = 1 To UBound($array) - 1
Но первый действительный путь находится под индексом 0:
Код:
For $i = 1 To UBound($f_s) - 1
и
Код:
$array[$i - 1] = StringRegExpReplace($f_s[$i], '.*' & $folder_name[1], '')
Таким образом происходит нессответствие путей и файлов в архиве, что и приводит к неправильному извлечению файлов и, как следствие, к ошибке.
P.S.
Если хотите сохранить структуру папок, то записывайте путь в архив.