![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
worsvch |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Пишу скрипт на perl, который использует модуль IO::Compress::Gzip. Скрипт сжимает файлы в формат gz.
Но только вот проблема: 1. В gz архиве сохраняется вся вложенность каталогов. К примеру, пусть файлы расположены в каталоге c:\files\01_11_2013\ Дак вот в gz архиве они сохраняют всю эту вложенность, то есть в нем также присутствуют каталоги files и 01_11_2013, хотя надо чтобы вложенность отсутствовала и в архиве были только файлы без каталогов 2. Не могу разобраться, как сделать так, чтобы оригинальные файлы сразу удалялись. В линуксе, например, можно сделать просто: gzip file, результатом выполнения которой будет file.gz, а файла file не останется Просьба помочь разобраться |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
1. не понял проблему. gzip не архиватор, а компрессор.
2. perldoc -f unlink |
|||
|
||||
worsvch |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
1. Внутри gz-файла файлы лежат так: \files\01_11_2013\file1.dat \files\01_11_2013\file2.dat \files\01_11_2013\file3.dat и т.д. а надо, чтобы: file1.dat file2.dat file3.dat То есть, чтобы модуль IO::Compress::Gzip не сохранял пути. 2. Про unlink я в курсе, может ли модуль IO::Compress::Gzip удалять оригинальные файлы после сжатия в gz? Это сообщение отредактировал(а) worsvch - 2.11.2013, 11:06 |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
1. покажите код, как вы это делаете.
2. если в документации нет, то нет. |
|||
|
||||
worsvch |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Часть кода, в которой отрабатывает gzip
|
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
из приведенного кода не следует, что в .gz файле лежат несколько других файлов
|
|||
|
||||
worsvch |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Не следует, но каждый файл лежит внутри нескольких папок, а надо чтобы открыл gz файл а там сразу файл который сжимал, а получается, что открываешь архив, например в 7-zip, а там папка и чтобы добраться до файла нужно пройти через несколько папок, прежде чем доберешься до самого файла Это сообщение отредактировал(а) worsvch - 5.11.2013, 09:37 |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
ну так и выводите его туда, куда вам надо: => "/tmp/$_.gz".
это к модулю не относится. |
|||
|
||||
worsvch |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Именно так и делаю, дак вот в этом и проблема, так как каталог tmp тоже окажется в файле gz, а нужен только сам файл без каталогов, то есть чтобы пути не сохранялись в архиве |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
опцию Name из документации попробуйте
|
|||
|
||||
worsvch |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Сделал по другому, использовал chdir и там уже запускал gzip, результат был, который хотел |
|||
|
||||
MikaGold |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.11.2013 Репутация: нет Всего: нет |
Да уж, для меня всегда сложновато это все было. Разбираете четко, опыт)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |