来自iOS上的NSFileHandle的文件路径(Swift或Objective C)

时间:2015-08-12 21:45:30

标签: ios objective-c swift nsfilehandle

我从函数调用中得到NSFileHandle,并希望访问它引用的文件。怎么弄?

我知道资源可能有多个文件路径或根本没有文件路径(内存中的文件)。但是,获得任何东西都会很好:)

3 个答案:

答案 0 :(得分:2)

您可以使用F_GETPATH

NSFileHandle* Handle = [NSFileHandle fileHandleForReadingAtPath:
                            @"/Applications/TextEdit.app/Contents/Info.plist"];
char Path[MAXPATHLEN];
if (Handle && fcntl([Handle fileDescriptor], F_GETPATH, Path) != -1)
    NSLog(@"%@", [NSString stringWithUTF8String:Path]);

答案 1 :(得分:1)

迅速:

var buffer = [CChar](repeating: 0, count: Int(MAXPATHLEN))
_  = fcntl(fileHandle.fileDescriptor, F_GETPATH, &buffer)
let fileName = String(cString: buffer)

答案 2 :(得分:0)

  

如果确实想要,可以找到此信息。该   fstat()调用将为您提供文件的设备和inode编号,如果   它有一个。然后,您可以在该设备中搜索具有该文件的文件   i节点。但这将是缓慢的,甚至可能不存在。

source