gpt4 book ai didi

macos - Mac 沙盒和临时文件

转载 作者:行者123 更新时间:2023-12-03 16:10:25 25 4
gpt4 key购买 nike

我正在对我的应用程序进行沙箱处理,但遇到了一个问题,因为我使用的库在修改原始文件时会创建临时文件,例如

当它更改“Hello World.txt”中的某些内容时,它将在同一目录中创建一个“Hello World_temp.txt”文件,然后在完成后它将交换这两个文件。

这当然会破坏沙箱规则,因为您只能更改源文件,而不能在文件夹中创建其他文件。

我找不到任何有关如何处理临时文件的建议,因此我目前只是在应用程序的容器中创建临时文件,允许我在其中写入然后交换文件。但是,如果应用程序和文件位于不同的磁盘上,那就不太好,因为这将涉及复制而不是移动。

是否有一个地方可以存放我们可以写入的临时文件?

最诚挚的问候,

弗兰克

最佳答案

在 10.7.3+ 上(也可以在 10.6 的沙箱外工作)尝试 NSFileManager 方法 URLForDirectory:inDomain:propertyForURL:create:error: (docs) 。这将为您提供特定卷上的临时目录。创建后,您可以使用 replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error: 切换文件。

现在有些不确定性:

在 10.7 -> 10.7.2 上,上述方法可能在沙箱中不起作用。相反,您可以使用函数 NSTemporaryDirectory() (docs) 。您可能发现replaceItemAtUrl...在这种情况下在沙箱下也不起作用,在这种情况下编写您自己的代码来读/写临时回。

关于macos - Mac 沙盒和临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com