2015-08-12 5 views
2

Я получил NSFileHandle из вызова функции и хотел бы получить доступ к файлу, к которому он относится. Как его получить?Путь к файлу из NSFileHandle на iOS (Swift или Objective C)

Я знаю, что ресурс может иметь несколько путей к файлу или никакого пути к файлу вообще (файл в памяти). Тем не менее, было бы неплохо, чтобы получить что-нибудь :)

ответ

0

Это можно найти эту информацию, если вы действительно хотите. Вызов fstat() даст вам номер устройства и inode файла, если у него есть. Затем вы можете найти это устройство для файла с этим inode. Но это будет медленным, и снова это может даже не существовать.

source

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]);