Автор Тема: Это файл или директория?  (Прочитано 2901 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YT

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Это файл или директория?
« : 05 Декабря 2001, 08:23:10 »
Привет всем!

Есть линк вида "http://abc.ru/def/ghij/klm".

Сервер успешно возвращает документ.
В большинстве случаев "klm" - это имя директории, а Apache возвращает файл "по умолчанию" из этой директории.
Но "klm" также может быть именем файла (без расширения) в директории "def". Как это можно проверить в каждом конкретном случае (из Perl)?

Оффлайн Haze

  • Просто я...
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.baltic.ee
Это файл или директория?
« Ответ #1 : 05 Декабря 2001, 13:04:34 »
if (-d $file) {}

  • Гость
Это файл или директория?
« Ответ #2 : 05 Декабря 2001, 13:11:10 »
Речь идет об удаленном сервере. Прямого доступа к файлам нет, только http.

  • Гость
Это файл или директория?
« Ответ #3 : 06 Декабря 2001, 10:45:39 »
Неужели никто не знает? :(

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Это файл или директория?
« Ответ #4 : 06 Декабря 2001, 12:49:42 »
Цитировать
Неужели никто не знает?

а если слеш вконце поставить?
вот так http://abc.ru/def/ghij/klm/
тогда klm файлом не будет...
The documentations is your friend

  • Гость
Это файл или директория?
« Ответ #5 : 07 Декабря 2001, 13:53:48 »
Если я правильно Вас понял, Вы предлагаете ставить слеш во всех спорных случаях и проверять вернет ли что-нибудь сервер на такой запрос. Если нет, то считать файлом.

Это, конечно, выход. Спасибо!

Только вот очень долго каждый раз для этого запрашивать весь файл ("use LWP::Simple; get $uri;"), а "use LWP::Simple; head $uri;" иногда возвращает undef для существующего файла :( . Может подскажете белее быстрый/надежный модуль/метод. Еще раз, спасибо!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28