我正在编写一个OS X程序,它有一个带有预览附件视图的打开面板。
问题在于,当我选择一个不在有沙盒权限的文件夹中的文件时,我无法预览它。
有没有办法在尝试打开文件之前告诉文件是否会受到沙箱权限的限制?
我已经尝试了- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error
的NSURL
类,但是即使文件受保护它也会返回true。
我正在编写一个OS X程序,它有一个带有预览附件视图的打开面板。
问题在于,当我选择一个不在有沙盒权限的文件夹中的文件时,我无法预览它。
有没有办法在尝试打开文件之前告诉文件是否会受到沙箱权限的限制?
我已经尝试了- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error
的NSURL
类,但是即使文件受保护它也会返回true。
对于那些喜欢在代码中尽可能减少平凡的C语言行数的人:
NSURLIsReadableKey in NSURL - (BOOL)getResourceValue:(out id *)value forKey:(NSString *)key
或者说
NSFileManager - (BOOL)isReadableFileAtPath:(NSString *)path
access
(在man的第2节中记录)来检查所需的权限。例如,大致检查读取权限的步骤如下:#include <unistd.h>
if (access([[url path] UTF8String], R_OK) == 0)
{
// have access rights to read
}