gpt4 book ai didi

cocoa - NSFileWrapper 和普通的旧文件句柄

转载 作者:行者123 更新时间:2023-12-03 17:03:01 24 4
gpt4 key购买 nike

我们正在将一个包含大量跨平台代码的应用程序移植到 Cocoa。必须使用直接对磁盘上的文件进行加载/保存的低级文件处理例程。

由于 NSFileWrapper 旨在通过 NSData 呈现内存中文件的内容,并抽象出磁盘上实际文件的详细信息,因此我们无法直接使用它,对吗?

因此能够使用我们的低级文件处理代码

  • fopen()
  • fread()

以及我们正在考虑的类似 ANSI-C 内容

  1. 使用 NSDocumentNSFileWrapper API,
  2. 将文件包装器中的 NSData 写回临时文件。文件夹
    (例如~/Library/Caches/)
  3. 交出该温度。文件(~100k .. 1MB)到较低级别。

文件写入的工作方式类似 - 只是相反。

现在 - 这种方法是直接访问 NSFileWrapper 表示的文件的最简单方法吗?我们是否忽略了文件包装器中的某些 API?

我们可能会遇到什么麻烦吗 - 尤其是沙盒和 iCloud……?

由于我们希望支持包含 1 个以上文件的文件包,因此我们宁愿在 NSDocument 中坚持使用基于文件包装器的 API,而不是使用 NSURL 基于方法。

任何反馈/批评表示赞赏!

最佳答案

我没有直接回答您的问题,但我确实有一些必读内容供您阅读:File System Programming Guide深入解释了各种可用的机制。我会特别注意关于 File Coordinators 的部分(由 NSDocument 使用,比试图破解 NSDocument 只是为了获得它的一些功能)和 Reading and Writing Files Without File Coordinators 的技术,其中包括使用 Grand Central Dispatch 进行安全的异步文件访问。

我希望这会有所帮助。

关于cocoa - NSFileWrapper 和普通的旧文件句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22377537/

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