在所有平台上创建 lua 文件夹遇到问题

我正在使用 Love2d 制作一个游戏,它使用瓷砖地图作为环境,我同时也在制作一个应用程序来创建这些瓷砖地图,这就是问题所在。

我想要在我的文档中创建一个文件夹(或者在 Mac 和 Linux 上的文档中),但这种可移植性是个问题,我有一个工作版本可以使用 luajit 的 ffi 和 _mkdir,但 _mkdir 在 Windows 之外的平台上不起作用。我尝试在其他平台上使用 mkdir 并在 MacBook Air 上进行了测试,但没有发生任何事情。

Love 的文件系统库只能在 Love2d 的路径之外使用,所以我无法使用它。除非有人能帮我解决这个问题,让我知道如何在应用程序中包含一个兼容 Love 并可以在我的机器之外工作的 C 库,否则这个想法只是个遥远的可能。

我应该只让它与 Windows 机器兼容吗?那是解决问题的简单方法,但似乎不太用户友好,但我怀疑有谁会为游戏制作地图。

点赞
用户6834680
用户6834680
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

如果 Windows 上的“我的文档”文件夹已从默认位置移动到用户指定的路径,则必须查找注册表以获取此路径

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal

2018-07-25 10:44:33