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

Trouble creating folder in lua over all platforms

我正在 Love2d 中制作游戏,它在其环境中使用了瓦片地图,除了游戏之外,我还在制作一个应用程序来创建这些瓦片地图,这就是问题所在。

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

Love 的文件系统库不能在 Love2d 路径之外工作,所以我不能使用它。我不知道如何在应用程序中包含一个与 Love 兼容并且可以在我的机器外工作的 C 库,所以除非有人可以帮助我,否则这个想法已经不存在了 window.

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

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 上的 "My Documents" 文件夹从默认位置移动到用户指定的路径,您必须查看注册表以获取此路径
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal