Forum Webscript.Ru

Программирование => Perl => Тема начата: kosm от 08 Сентября 2003, 12:33:34

Название: File exist?
Отправлено: kosm от 08 Сентября 2003, 12:33:34
Подскажите плиз, есть ф-ция типа exist() чтобы узнать о наличии файла?

PS: Офтопик, но мож ткнете носом в нормальный хелп по ф-циям перла? Не его стандартный html, в котором ничего не найти, а hlp, chm?

СПАСИБО!
Название: File exist?
Отправлено: mike от 08 Сентября 2003, 12:45:56
kosm

-e "filename"

perldoc -f -X

Если нужен chm, возьми HTML и сконвертируй, неужели нет утилит? Вот, навскидку:
http://softodrom.ru/get.php?id=2811&action=dl
Название: File exist?
Отправлено: Phoinix от 08 Сентября 2003, 13:10:01
if (open(FILE, "$file")) {print "File exist";}
Название: File exist?
Отправлено: kosm от 08 Сентября 2003, 15:27:55
mike
Phoinix
Спасибо! Использовал -e
Название: File exist?
Отправлено: NeoNox от 08 Сентября 2003, 15:34:13
Phoinix
не забыть бы его после закрыть...
Название: File exist?
Отправлено: Phoinix от 08 Сентября 2003, 15:45:24
NeoNox
Ну по логике, если мы проверяем наличие файла и его находим, то следующее действие - откываем файл;
а так сразу двух зайцев - проверяем наличие во время открытия.
Название: File exist?
Отправлено: Alone от 08 Сентября 2003, 16:02:53
Phoinix
А если его нужно удалить?
А если дописать в конец?
А если перезаписать?
А если просто проверить есть ли он?

кстати если нужно проверить на существование именно файл(имеется введу обычный файл) то лучше использовать -f
Название: File exist?
Отправлено: NeoNox от 08 Сентября 2003, 16:12:53
Phoinix Да кстати, если файл занят другим процессом то open соврет. Так что нельзя в данном случае этот оператор использовать.
Название: File exist?
Отправлено: Phoinix от 08 Сентября 2003, 16:26:22
Alone
Функция open в слечае успешного завершения возвращает результат, отличный от нуля, и undef в противном случае. Поэтому вопрос о дописывании и переписывании файла отпадает.

Если мы удаляем файл опреатором unlink, то он так же возвращает количество успешно удаленных файлов, и не выдает ошибки если файла нет. Поэтому IMHO проверять наличие файла перед удалением бессмысленно.

Вот только если проверить его наличие, то да, не более того...


NeoNox
Не спорю, но в случае если мы все же хотим открыть файл, то его присутствие как таковое ничего не даст если он заблокирован...
Название: File exist?
Отправлено: Alone от 08 Сентября 2003, 16:46:23
Phoinix
ошибка ошибке рознь
если при открытие файла возращенно что файл не обнаружен это одно, а если вернет у вас нет прав? или нет свободного места(при сохранение конечно)?
ради того чтобы не использовать одну простую комманду нужно наворачивать обработчик ошибок... смысол?
Название: File exist?
Отправлено: NeoNox от 08 Сентября 2003, 16:59:34
Цитировать
kosm:
Подскажите плиз, есть ф-ция типа exist() чтобы узнать о наличии файла?

Цитировать
Phoinix:
но в случае если мы все же хотим открыть файл, то его присутствие как таковое ничего не даст если он заблокирован

Правильный ответ дал mike
kosm не забудь повысить рейтинг mike.

[moderator]
Тема закрыта