我从函数调用中得到NSFileHandle
,并希望访问它引用的文件。怎么弄?
我知道资源可能有多个文件路径或根本没有文件路径(内存中的文件)。但是,获得任何东西都会很好:)
答案 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节点。但这将是缓慢的,甚至可能不存在。