繁体   English   中英

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

[英]Filepath from NSFileHandle on iOS (Swift or Objective-C)

我从函数调用中获得了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 编号(如果有的话)。 然后,您可以在该设备中搜索具有该 inode 的文件。 但这会很慢,而且它甚至可能不存在。

来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM