удаление пустой папки

Tema05

Известный
Автор темы
1,506
471
Версия MoonLoader
.026-beta
Lua:
if doesDirectoryExist(getFolderPath(0x05) .. "/LiteHelper") then
      os.remove(getFolderPath(0x05) .. "/LiteHelper")
      sampAddChatMessage(getFolderPath(0x05) .. "/LiteHelper", -1)
end
Почему не удаляется пустая папка? Есть альтернативные способы без lfs?
 

ImPasha

Software Developer & System Administrator
Друг
1,787
2,147
os.remove(filename)
Deletes the file with the given name. If this function fails, it returns nil, plus a string describing the error.
Действительно, почему же не удаляется папка, если удалять её функцией для удаления файлов.
Lua:
lfs.rmdir (dirname) -- LFS Library Required
 

Tema05

Известный
Автор темы
1,506
471
Действительно, почему же не удаляется папка, если удалять её функцией для удаления файлов.
Lua:
lfs.rmdir (dirname) -- LFS Library Required
тут написано что пустой может https://coderlessons.com/tutorials/stsenarii/vyuchi-lua/lua-vozmozhnosti-operatsionnoi-sistemy
Сорян, ошибся в названии библиотеки. Есть решения без lfs?
 

ImPasha

Software Developer & System Administrator
Друг
1,787
2,147

Tema05

Известный
Автор темы
1,506
471
Зачем решение без LFS, если он идет вместе с MoonLoader?
Когда он с ним шёл?

Код:
[ML] (error) LiteHelper: D:\GTA San Andreas\moonloader\LiteHelper.lua:10072: module 'lfs' not found:
    no field package.preload['lfs']
    no file 'D:\GTA San Andreas\moonloader\lib\lfs.lua'
    no file 'D:\GTA San Andreas\moonloader\lib\lfs\init.lua'
    no file 'D:\GTA San Andreas\moonloader\lfs.lua'
    no file 'D:\GTA San Andreas\moonloader\lfs\init.lua'
    no file '.\lfs.lua'
    no file 'D:\GTA San Andreas\moonloader\lib\lfs.luac'
    no file 'D:\GTA San Andreas\moonloader\lib\lfs\init.luac'
    no file 'D:\GTA San Andreas\moonloader\lfs.luac'
    no file 'D:\GTA San Andreas\moonloader\lfs\init.luac'
    no file '.\lfs.luac'
    no file 'D:\GTA San Andreas\moonloader\lib\lfs.dll'
stack traceback:
    [C]: in function 'require'
    D:\GTA San Andreas\moonloader\LiteHelper.lua:10072: in function <D:\GTA San Andreas\moonloader\LiteHelper.lua:9776>
 

ImPasha

Software Developer & System Administrator
Друг
1,787
2,147
А вот и замечательная библиотека Lua File System, которая идёт в комплекте с MoonLoader 0.27-preview3, и насколько я помню также идёт в комплекте с версией MoonLoader 0.26, если нет, то это очень странно. В любом случае её можно докачать, она абсолютно бесплатная.

image.png
 

Tema05

Известный
Автор темы
1,506
471
А вот и замечательная библиотека Lua File System, которая идёт в комплекте с MoonLoader 0.27-preview3, и насколько я помню также идёт в комплекте с версией MoonLoader 0.26, если нет, то это очень странно. В любом случае её можно докачать, она абсолютно бесплатная.

image.png
Я не хочу делать подкачку либы только лишь чтобы скрипт 1 раз при 1 запуске 1 раз её использовал и в 026 её нет
 

ImPasha

Software Developer & System Administrator
Друг
1,787
2,147
Я не хочу делать подкачку либы только лишь чтобы скрипт 1 раз при 1 запуске 1 раз её использовал и в 026 её нет
В таком случае предлагаю использовать функционал LuaJIT, вот необходимая функция:
C++:
BOOL RemoveDirectoryA(
  LPCSTR lpPathName
);