Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ForceDirectory无法在MacOS应用程序支持中创建文件夹_Macos_Delphi - Fatal编程技术网

ForceDirectory无法在MacOS应用程序支持中创建文件夹

ForceDirectory无法在MacOS应用程序支持中创建文件夹,macos,delphi,Macos,Delphi,德尔福XE7 var theFolder: String; ... theFolder := System.IOUtils.TPath.Combine(GetMacApplicationSupportDir, 'com.bookup.mychessapp' + Pathfinder; ShowMessage(theFolder); if ForceDirectories(theFolder) then ShowMessage('It worked.') else ShowMess

德尔福XE7

var
  theFolder: String;
...
theFolder := System.IOUtils.TPath.Combine(GetMacApplicationSupportDir, 'com.bookup.mychessapp' + Pathfinder;

ShowMessage(theFolder);

if ForceDirectories(theFolder)
  then ShowMessage('It worked.')
  else ShowMessage('It failed.');
ShowMessage现在说它成功了

文件夹是“/Users/mike/Library/Application Support/com.bookup.chessopeningswizardprofessional/”

该反向URL与应用程序info.plist中的包标识符匹配


但是,即使ForceDirectory报告成功,该文件夹也不会出现在Macintosh HD | Library |应用程序支持中,该应用程序支持中包含所有其他应用程序的文件夹。

您希望应用程序支持目录位于系统的库目录下,而不是用户的库目录下

GetMacApplicationSupportDir函数可能正在传递NSUserDomainMask,因此正在检索用户库目录下的应用程序支持目录

如果需要系统库目录下的应用程序支持目录,则应使用NSSystemDomainMask

如果ForceDirectory仍然无法使用系统级应用程序支持目录,则您可能没有相应的管理员根权限在那里创建目录和文件。此操作通常由和安装过程执行,该过程会提示提升管理员/root权限

看看这个问题,;它似乎正在解决一个类似的问题:


传递给ForceDirectory的实际字符串值是多少?将其分配给一个局部字符串变量,然后传递该局部变量,以便您可以更轻松地检查它。我正要说您应该调用GetLastError,但这仅适用于Windows。不确定这在OSX上如何工作。@DaveOlson我已经编辑了这个问题以包含确切的字符串。@MikeatBookup-在我昨天对你的问题的回答中:;我将演示如何检索用户的应用程序支持目录。您需要系统的应用程序支持目录。我已经更新了另一个答案以显示这两个选项。Mac上的Finder显示了库/应用程序支持/谷歌、Adobe、VMWare等文件夹中的许多应用程序文件夹。当我切换到NSSystemDomainMask时,Mac会返回/Library/Application Support/com.bookup.chessopeningswizardprofessional/有两件事:首先,对ForceDirectories的调用现在失败了。第二,Finder没有在System | Library文件夹中显示应用程序支持文件夹。您可能有权利发行;我更新了答案,并指出了一个老问题,它似乎处理了类似的问题。