Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > проверка наличия архива


Автор: kukich 29.11.2010, 17:20
Здравствуйте,как проверить наличие архива в директории (freebsd),не применяя модуль Archive::Zip?

Автор: ginnie 29.11.2010, 17:23
kukich, не совсем понял вопрос: Вам нужно проверить наличие определенного файла, то что этот файл является архивом или что-то другое?

Автор: kukich 29.11.2010, 17:28
Надо просто проверить ,есть ли  файл  name.tar.gz ,ну и работать с ним,если он есть

Автор: ginnie 29.11.2010, 17:34
Предложу вариант
Код

if (-e $filepath) {
    ...
}


Добавлено через 2 минуты и 52 секунды
... хотя, лучше, наверное, -s $filepath (о функциях -X см. http://perldoc.perl.org/functions/-X.html)

Автор: kukich 29.11.2010, 17:45
Код

#!/usr/bin/perl

use DBI;

system("cd /srvs/archive/");
$filepath="archive.tar.gz";
if (-e $filepath) {
print "exist";
}
else
{
print "not exist";
}

Вот так пишет not exist ,хотя в указанной директории указанный файл есть

Автор: ginnie 29.11.2010, 17:53
kukich,  попробуйте либо использовать полный путь к файлу, либо chdir('/srvs/archive/') вместо system().

Автор: kukich 29.11.2010, 18:06
полный пусть к файлуц сработал,большое спасибо,а почему не работает через system?

Автор: ginnie 29.11.2010, 18:20
Потому, что system() создает отдельный процесс.

Автор: kukich 29.11.2010, 18:41
понятно,спасибо за помощь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)