无法在所有平台的lua中创建文件夹

时间:2018-07-25 09:55:32

标签: lua filesystems love2d

我正在Love2d中制作一个游戏,它在其环境中使用了图块贴图,此外,我还在制作一个应用程序来创建这些图块贴图,这就是麻烦所在。

我想要做的是在“我的文档”(或Mac和Linux中的“文档”)中创建一个文件夹,但这是可移植性的问题,我有一个工作版本,其中使用了luajit的ffi和_mkdir,但是{ {1}}在Windows以外的平台上均无法使用。我在其他平台上尝试了_mkdir,并在Macbook Air上进行了测试,但没有任何反应。

Love的文件系统库在Love2d路径之外无法正常工作,因此我无法使用它。我不知道如何在与Love兼容的应用程序中包括一个C库​​,该C库将在我的机器之外运行,所以除非有人可以帮助我,否则这个想法就不成立了。

我应该使其与Windows计算机兼容吗?那将是解决问题的简便方法,但它似乎并不十分用户友好,但是我怀疑有人会为游戏制作地图。

1 个答案:

答案 0 :(得分:0)

local function create_dir_inside_documents_folder()
   if (os.getenv("oS") or ""):match("^Windows") then
      os.execute('mkdir "%userprofile%\\Documents\\Your folder" 1>nul: 2>&1')
   else
      os.execute('mkdir -p ~/Documents/"Your folder" 2>/dev/null')
   end
end

P.S。
如果Windows上的“我的文档”文件夹已从默认位置移动到用户指定的路径,则必须查看注册表以获取此路径
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal