簡體   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