【发布时间】:2015-08-12 21:45:29
【问题描述】:
我从函数调用中获得了NSFileHandle,并希望访问它所引用的文件。如何得到它?
我知道资源可能有多个文件路径或根本没有文件路径(内存中的文件)。但是,得到任何东西都会很好:)
【问题讨论】:
标签: ios objective-c swift nsfilehandle
我从函数调用中获得了NSFileHandle,并希望访问它所引用的文件。如何得到它?
我知道资源可能有多个文件路径或根本没有文件路径(内存中的文件)。但是,得到任何东西都会很好:)
【问题讨论】:
标签: ios objective-c swift nsfilehandle
你可以使用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]);
【讨论】:
迅速:
var buffer = [CChar](repeating: 0, count: Int(MAXPATHLEN))
_ = fcntl(fileHandle.fileDescriptor, F_GETPATH, &buffer)
let fileName = String(cString: buffer)
【讨论】:
如果您真的想要,可以找到此信息。这 fstat() 调用将为您提供文件的设备和 inode 编号,如果 它有一个。然后,您可以在该设备上搜索具有该文件的文件 索引节点。但这会很慢,而且它甚至可能不存在。
【讨论】: