gpt4 book ai didi

objective-c - NSURL 书签查找失败

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

我正在尝试存储对 NSURL 集合的书签引用,但是 bookmarkDataWithContentsOfURL 似乎每次都会失败,即使对于我有权访问的文件也是如此。我的应用程序(尚未)沙盒化,所以这不是问题。

我正在以其他方式(通过基于 C 的 API 和 Cocoa API)读取这些文件,没有任何问题。

我正在迭代一个目录并尝试读取书签数据,如下所示:

NSArray * contents = [[NSFileManager defaultManager] 
contentsOfDirectoryAtURL:directoryURL
includingPropertiesForKeys:keys options:0 error:&error];

for (NSURL * url in contents)
{
NSData * bookmarkData = [NSURL bookmarkDataWithContentsOfURL:url error:&error];

if (error)
{
NSLog(@"Error finding bookmark for %@: %@", url, error);
}
}

对于所有常规文件,我收到以下错误:

Error finding bookmark for file://localhost/Users/mspong/foo/bar.pdf: 
Error Domain=NSCocoaErrorDomain Code=256 "The file couldn’t be opened."

对于所有目录,我得到:

Error finding bookmark for file://localhost/Users/mspong/foo/: 
Error Domain=NSPOSIXErrorDomain Code=21 "The operation couldn’t be completed. Is a directory"

为什么对于我确实有权打开的文件会出现此错误?第二个错误是否意味着书签不可用于目录?有没有其他方法可以为在重命名/移动后仍然存在的目录保存持久标识符?

最佳答案

函数bookmarkDataWithContentsOfURL:error:别名文件中检索书签数据。

要为 URL 创建书签数据,请使用

bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:

参见Locating Files Using Bookmarks在“文件系统编程指南”中。

关于objective-c - NSURL 书签查找失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13256809/

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