parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

8. Хотелка на Parser 3.4.x или как сделать ^file:exist - которого нет

Newbie 18.08.2009 11:42

Задача: проверить физ.существование файла на диске.
Задача вроде проще простой - но соответствующего метода в Parser'e не нашел.

Первое ощущение что не хватает статического метода ^file:exist[dir/filename]

- Хотел сделать через статические методы типа ^file:basename и ^file:justname но обнаружил, что они не обращаются вообще к диску -
а работают просто со стрингом.
- ^file::load[] - не хочется - зачем загружать файл если просто хочется проверить его существование
- ^file:find[] - не хочется - зачем рыскать по всему диску если файла нет в текущей папке
- Парсить содержимое текущего каталога - тоже может оказаться затратно - если много файлов
- ^file::stat - тоже ругается если файла нет - (а зря кстати)

Вообщем единственный какой я навскидку нашел способ - это делать ^try{ от ^file::stat[] ...
P.S.: По наитию не хватает одного из вариантов:
 ^file::stat[filename]  # создает объект даже если файла нет, но поле добавить поле $file.exist(True|False)
 ^file:exist[filename]  # статический метод на запрос о существовании файла - самый имхо простой и нужный