【问题标题】:How to return the App Temp directory如何返回 App Temp 目录
【发布时间】:2023-03-03 19:40:01
【问题描述】:

我正在尝试确定将脚本文件放置在沙盒时可以读取/写入的位置。在阅读 Apple 文档时,我看到了以下内容:

一些路径查找 API(在 POSIX 层之上)指的是用户主目录之外的特定于应用程序的位置。例如,在沙盒应用程序中,NSTemporaryDirectory 函数提供了指向用户主目录之外但特定于您的应用程序和沙盒内的目录的路径;您对当前用户拥有不受限制的读/写访问权限。这些寻路 API 的行为已针对 App Sandbox 进行了适当调整,无需更改代码。

所以基本上我需要使用 NSTemporaryDirectory 函数来返回应用程序临时目录。但我似乎无法弄清楚如何使用 NSTemporaryDirectory 的其他文档:

NSTemporaryDirectory 返回当前用户的临时目录路径。

NSString * NSTemporaryDirectory (void); 返回值 包含当前用户临时目录路径的字符串。如果当前没有这样的目录可用,则返回 nil。

谁能帮我弄清楚这个临时目录可能位于哪里,或者如何使用某种 NSLog 找到它?

请指教。

【问题讨论】:

    标签: xcode macos sandbox


    【解决方案1】:

    简单地说:

    NSString *tempDir = NSTemporaryDirectory();
    NSLog(@"tempDir='%@'", tempDir);
    

    编辑:根据 OP 请求,更新了将值存储在变量中的答案。

    【讨论】:

    • 这不起作用,而是给了我一个错误:预期的参数声明
    • @xxethanixx 你把它放在哪里了?在您已有的方法的顶部尝试。
    • 哇,我不敢相信它这么简单。非常感谢!我要特别感谢你!
    • 现在当我能够写入临时目录中的文件但我仍然遇到一些问题时。首先,脚本文件不会在终端中执行,我收到以下错误:deny file-write-data /Applications/Utilities/Terminal.app 我没有写入终端应用程序,而是使用它执行命令,所以为什么我收到错误了吗?其次,如何为 NSLog 显示的临时目录创建变量?
    • @xxethanixx 为第一个问题开始另一个 SO 问题,但我会回答第二个问题。
    【解决方案2】:

    使用这个文件:

    #import <Foundation/Foundation.h>
    
    int main()
    {
        NSLog(@"Temporary directory is: %@", NSTemporaryDirectory());
        return 0;
    }
    

    然而,一般来说,NSTemporaryDirectory 只返回 /tmp。

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 2011-07-26
      • 2012-06-04
      • 2012-03-14
      • 2010-12-13
      • 2014-11-25
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      相关资源
      最近更新 更多