У меня есть сервер Ubuntu и я использую rar с функцией exec() . Когда я хочу создать архив RAR из моих файлов, эта программа использует их путь в моем архиве RAR.

Например, если мой файл находится в /home/user/video/some.flv а моя php-программа находится в /home/user , он будет добавлен как video/some.flv - однако я хочу, чтобы путь к файлу был some.flv ,

Я также не хочу копировать мой файл туда, где находится моя php-программа, поэтому мне нужен способ изменить путь. Я использовал это:

rar rn archive.rar video/some.flv some.flv

… Но когда я пытаюсь извлечь его, он говорит, что метка файла "неправильная или повреждена". Что я могу сделать? У меня много больших файлов по разным путям, и я хочу, чтобы все они были в корневом каталоге моего архива RAR.

2 ответа2

1

Вы можете попробовать добавить -ep (исключить путь) в rar. Поэтому, когда вы добавляете новые файлы, это будет что-то вроде:

rar a -ep archive.rar video/some.flv

но rar должен добавить его в архив как просто some.flv .

0

Я предполагаю, что команда, которую вы выполняете (из вашего приложения PHP), что-то вроде

rar a archive.rar video/some.flv

По словам rar --help ,

ep --- исключить путь из имен

Добавление -ep вроде так

rar a -ep archive.rar video/some.flv

приводит к отсутствию путей в rar, и все добавленные вами файлы будут отображаться в той папке, в которую они извлечены, а не в подпапке.

Я не мог понять, как сделать то же самое, что и tar -C , но я надеюсь, что это сделает то, что вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .