Как в LUA осуществить поиск файла в заданной папке с заданным именем ?

Страницы: 1
RSS
Как в LUA осуществить поиск файла в заданной папке с заданным именем ?
 
Как в LUA осуществить поиск файла в заданной папке с заданным именем ?
 
Здравствуйте,
На сколько становится понятно, задача проще чем кажется.
Раз папка и имя файла заранее известны, значит нужно делать не поиск файла а проверить его существование.
Это легко делается функцией io.open с параметром "r+"
Если функция вернула nil значит файла не существует
 
Цитата
Sergey Gorokhov написал:
Если функция вернула nil значит файла не существует
Или он занят другим приложением.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Цитата
Sergey Gorokhov   написал:
Если функция вернула nil значит файла не существует
Или он занят другим приложением.

с параметром "r+" ??
 
Файл может быть заблокирован другим приложением на чтение. А тем более на дозапись (параметр "r+").
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Sergey Gorokhov написал:
Цитата
Старатель   написал:
Цитата
Sergey Gorokhov   написал:
Если функция вернула nil значит файла не существует
Или он занят другим приложением.
с параметром "r+" ??

Хотя да, если доступа к файлу нет то действительно вернет nil
тогда можно использовать просто параметр "r"
 
Спасибо, ответы исчерпывающие, мне думаю помогут.
 
А если расширить задачу до поиска файлов с неизвестным именем в известной папке? Например, мы хотим открыть все файлы (в заданной папке) с расширением .csv и затем проверить их на незанятость другими приложениями, как это сделать? При этом мне надо знать имя файла, к которому привязан указатель.
 
Так работает (под виндой):
Код
for f in io.popen(string.format("dir \"%s\"\\*.csv /b",PATH)):lines() do
    message(f)
end
 
Цитата
ivan написал:
Так работает (под виндой):
Код
   for  f  in   io.popen ( string.format ( "dir  \" %s \" \\*.csv /b" ,PATH)):lines()  do 
     message (f)
 end   
Работоспособность будет зависеть от билда ОС: ненадежно. Лучше использовать готовую библиотеку lfs или самому написать расширение на С++
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Согласен, мне тоже не нравится зависимость от ОС. Спасибо за наводку на библиотеку!
Страницы: 1
Читают тему
Наверх