0

使用 XE6,此处的 Embarcadero 文档指出 TPath::GetLibraryPath () “返回目录的路径以存储您的应用程序需要存储的任何数据,无论用户如何”。

然而,在 Sample Path 表中,他们将此功能的 OS X 列为

/用户/用户名/库

这似乎是用户特定的。第一个问题是,无论用户如何,这实际上是否是用于存储数据的正确文件夹。第二个问题是 - 如果不是 - 如何将文件夹获取到 OS X 中的用户非特定库?

4

1 回答 1

1

我使用类似的东西来检索这个文件夹。

uses
  Macapi.Foundation, Macapi.Helpers;

type
  ENSFileManagerException = class(Exception);

function GetFolder_ProgramData: string;
var
  FileManager: NSFileManager;
  ID: Cardinal;
  Domain: Cardinal;
  Url: NSURL;
  Bundle: NSBundle;
begin
  ID := NSApplicationSupportDirectory; // ProgramData on Windows
  Domain := NSLocalDomainMask;

  FileManager := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager);
  Url := FileManager.URLForDirectory(ID, Domain, nil, False, nil);
  if URL <> nil then
    Result := NSStrToStr(Url.path)
  else
    raise ENSFileManagerException.CreateFmt('Could not retrieve folder for ID %d', [ID]); //Error.localizedDescription.UTF8String);
end;
于 2014-06-07T16:45:48.583 回答