Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Archive::Rar, путь в win 
V
    Опции темы
Bulat
Дата 22.7.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Столкнулся с проблемой, при попытке разархивировать rar-овский файл, путь до файла в виде

"C:\My Path\..."

Он берет как "C:\My" и соотв. не может добраться до архива


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Ky6uk
Дата 22.7.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 22.6.2007

Репутация: нет
Всего: нет



А пробел экранировать не пробывали?

Код

"C:\My\ Path\..."

PM MAIL ICQ Jabber   Вверх
Bulat
Дата 22.7.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Ky6uk @  22.7.2008,  12:36 Найти цитируемый пост)
А пробел экранировать не пробывали?

Хе-хе ))

Код

$rarFilePath =~ s{ }{\\ }g;

если ты имел ввиду нечто подобное, то я не могу понять как это повлияет на выполнение команды ?? Так он будет не находить "C:\My\" smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Ky6uk
Дата 22.7.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 22.6.2007

Репутация: нет
Всего: нет



А "C:\My\" как "C:\My\\"

В итоге получаем

Код

"C:\\My\ Path\\..."

Я с этим модулем не работал. Это так, идеи.

Добавлено через 5 минут и 10 секунд
Или в одинарные кавычки еще можно попробовать.
В двойных вроде как перл интерполирует значение после "\". Например "\n", как известно, - переход на новую строку.
PM MAIL ICQ Jabber   Вверх
Bulat
Дата 22.7.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Ky6uk @  22.7.2008,  13:03 Найти цитируемый пост)
Или в одинарные кавычки еще можно попробовать.
В двойных вроде как перл интерполирует значение после "\". Например "\n", как известно, - переход на новую строку. 

Речь не только о перле, но и о командах от rar.exe под win smile

Тут это на вряд ли прокатит smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Bulat
Дата 22.7.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Нашел интересное место.

Дело в том, что если в cmd вводить
Код

C:\Program Files\WinRAR>rar.exe lt "С:\Мои Архивы\...\1.rar"


Допустим, команда срабатывает, что вполне есс-но, а вот передать 

Код

my $rar = new Archive::Rar( -archive => $RarFile);


где $RarFile - начинался бы и заканчивался двойными кавычками судя по всему невозможно, да и в самом модуле это не предусмотрено smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 22.7.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Bulat
Цитата
c:\>1.pl

RAR 3.60    Авторские права © 1993-2006 Александр Рошал    5 Aug 2006
Зарегистрировано на имя: ***

Создание архива C:\My Files\test.rar

Добавление C:\My Files\test                                            OK
Готово


c:\>dir "c:\My Files"
 Том в устройстве C имеет метку SYSTEM
 Серийный номер тома: ****

 Содержимое папки c:\My Files

23.07.2008  00:12    <DIR>          .
23.07.2008  00:12    <DIR>          ..
23.07.2008  00:09                 0 test
23.07.2008  00:12                77 test.rar
               2 файлов             77 байт
               2 папок  11 447 316 480 байт свободно

c:\>


Код
#!perl
use strict;
use warnings;

use Archive::Rar;

my $RarFile = 'C:\My Files\test.rar';
my $rar = Archive::Rar->new( -archive => $RarFile);

my @list_of_files = ('"C:\My Files\test"'); # сначала ' затем " ;)
$rar->Add( -files => \@list_of_files);



--------------------
PM   Вверх
Bulat
Дата 23.7.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



nitr, не, не совсем. Мне нужно не создавать архивы, а просматривать то, что есть в созданных(сама задача просто проверить на существование некоторых файлов, т.е. по определенному расширению)

Код

sub ExtractRar {
  my $RarFile = shift;
  my $rar = new Archive::Rar( -archive => $RarFile);
  $rar -> List();
  $rar -> PrintList();
}


Вот при такой предыдущей процедуре(сейчас я ручками собираю команду и `` smile), у меня вылезала ошибка, типа 
"Не удается найти указанный файл.
Невозможно открыть E:\Архив.rar"

А сам путь до архивов E:\Архив ААА\....\*.rar, т.е. значение $RarFile.

Добавлено через 11 минут и 47 секунд
И кстати, задавать типа
Код

my $rar = new Archive::Rar( -archive => '"'.$RarFile.'"');


Я тоже пытался, та же ерунда :(


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 23.7.2008, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Внутри архива папка и внутри папки файл smile Всё тип-топ ;)
Bulat
Код
#!perl
use strict;
use warnings;

use Archive::Rar;

ExtractRar('C:\Архив ААА\Архив АА1.rar');

sub ExtractRar {
  my $RarFile = shift;
  my $rar = Archive::Rar->new( -archive => $RarFile);
  $rar -> List();
  $rar -> PrintList();
}


Цитата
c:\>1.pl

+-------------------------------------------------+----------+----------+------+

|                    File                         |   Size   |  Packed  | Gain |

+-------------------------------------------------+----------+----------+------+

| My Files\test                                   |        0 |        0 | 100% |

+-------------------------------------------------+----------+----------+------+


c:\>dir "c:\Архив ААА"
 Том в устройстве C имеет метку SYSTEM
 Серийный номер тома: ****

 Содержимое папки c:\Архив ААА

23.07.2008  20:38    <DIR>          .
23.07.2008  20:38    <DIR>          ..
23.07.2008  00:12                77 Архив АА1.rar
               1 файлов             77 байт
               2 папок  11 434 508 288 байт свободно

c:\>




--------------------
PM   Вверх
Bulat
Дата 24.7.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(nitr @  23.7.2008,  19:40 Найти цитируемый пост)
Всё тип-топ

Жесть, а у меня ругается... Мож это как-то связано с файловой системой носителя или еще с чем. На родном 'C:' я не пробовал, мне нуна было просканить архивы на переносном, который подключили к моему через usb smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 24.7.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Bulat, всё норм smile
У меня на хардах NTFS, на флехе №1 FAT, №2 FAT32 . Модуль свежий?


--------------------
PM   Вверх
Bulat
Дата 25.7.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(nitr @  24.7.2008,  18:24 Найти цитируемый пост)
Модуль свежий? 


$VERSION =1.9; smile




--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 25.7.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Bulat
$VERSION = '2.02'; 


--------------------
PM   Вверх
Bulat
Дата 28.7.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



nitr, все понятно ))) 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 28.7.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Bulat, не за что ;)


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1152 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.