Проверка существования папки из Lua

Опубликовано в QLua

В стандартной библиотеке io нет функции, проверяющей существование каталога. А мне понадобилась. Немного подумав, интереса ради решил поэкспериментировать. Получился бантик, позволивший обойтись без С++ и внешних библиотек.

 Переименовываем папку саму в себя и смотрим результат:

-- Проверка существования папки
-- Возвращает
-- true/false результат выполнения
-- строка диагностики или nil в случае успеха
-- имя папки в случае ошибки
function directory_exists(directory)
      return os.rename(directory,directory)
end

Что характерно. В стандартном руководстве на LUA указано, что os.rename() возвращает только 2 значения. Оказалось, что есть и третий - имя самого файла/папки, причем без буквы диска и двоеточия.

P.S. Нужно учитывать права доступа и открытые файлы внутри папки.

Архив QLua