2012-03-27 3 views
3

У меня есть путь к файлу, и мне нужно получить данные файла в NSData. Я использую:Данные NSDataWithContentOfFile возвращает нуль?

NSError *err = nil; 
NSData *d = [NSData dataWithContentsOfFile:file options:nil error:&err]; 

NSLog(@"error: %@", err); 

Ошибка:

Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x34a8f0 {NSFilePath=file://localhost/var/mobile/Applications/A19223D4-0AEF-4677-8EDD-0D2CA9A7BB73/Documents/12-03-25%2022:10:48--cc.mp4, NSUnderlyingError=0x34a560 "The operation couldn’t be completed. No such file or directory"} 

Но файл/каталог существует, потому что я играю в видео-файл и он работает просто отлично:

MPMoviePlayerViewController *controller = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:[video filepath]]]; 
[self presentMoviePlayerViewControllerAnimated:controller]; 

Что такое идет не так? Thanks

ответ

6

Вы передаете URL-адрес в строковом формате dataWithContentsOfFile, вы должны использовать «путь к файлу» для файла.

В этом случае вы должны удалить «файл: // localhost» из строки. Если файл существует, это должно работать.

+0

Есть ли удобный способ для NSString, который позволит мне удалить файл: // localhost – 0xSina

+6

Не просто удалите префикс «file: // localhost». Используйте 'NSString * path = [[NSURL URLWithString: файл] путь];' для преобразования URL-адреса файла в путь unix. –

+0

ДА, в классе NSURL у вас есть [URL-адрес]. Но у вас есть url как строка, поэтому вам нужно сначала создать URL-адрес: NSURL * url = [NSURL URLWithString: yourURLString] – LuisEspinoza

Смежные вопросы