Иногда бывает необходимо учесть в программе, что файл с которым собираетесь работать отсутствует, занят другой программой или пуст.
Для проверки наличия файла я использую функцию, которую сам когда-то нашел в сети, она возвращает размер файла в байтах, если файл существует и nil если не найдет его.
Проверить занят ли файл, а также проверить что он не пустой можно следующей функцией:
Все данные с файла C:\files\test.csv сохраняются в массив string_file, который будет глобальным и его можно использовать далее в main, например.
Основная часть программы:
Если файл C:\files\test.csv существует, то скрипт выведет размер файла.
Если открыт (например в excel), то укажет, что файл занят.
Если будет пустым, то получим соответствующий статус.
Скрипт:
github.com/morefinances/qlua/blob/main/status_file.lua
Что за древние кодировки?
В первой функции запрос типа файла, это его содержимого или просто его названия?
И в первой и во второй функции происходит вызов самой себя? Не произойдёт ли зацикливание файла?
Не достаточно ли будет после открытия файла провести проверку #fale, чтобы определить его размер?
Если во второй функции открываем методом «а+» не произойдёт ли стирание содержимого файла?
В первом вопросе я имел ввиду необходимость данного условия: if type(file) == «string» then
------------------------проверка существования файла-----------------------
-------------------------------------------------------------------------------
function file_exists(name)
local f = io.open(name, «r»)
return f ~= nil and io.close(f)
end
короче Склифософский©