我有一个NSURL
对象,它为我提供了本地文件的路径(在documents文件夹中)。我想NSData
用此文件的内容填充对象。尝试使用,dataWithContentsOfURL:
但这失败。我知道该文件存在,因为iPhoneSDK
返回了路径。
有人可以告诉我如何NSData
从URL
本地文件中获取对象吗?
谢谢。
我有一个NSURL
对象,它为我提供了本地文件的路径(在documents文件夹中)。我想NSData
用此文件的内容填充对象。尝试使用,dataWithContentsOfURL:
但这失败。我知道该文件存在,因为iPhoneSDK
返回了路径。
有人可以告诉我如何NSData
从URL
本地文件中获取对象吗?
谢谢。
Answers:
// Given some file path URL: NSURL *pathURL
// Note: [pathURL isFileURL] must return YES
NSString *path = [pathURL path];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
SWIFT代码:
let data = FileManager.default.contents(atPath: path)
要完成这项工作,您只需要执行以下操作:
NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"search" withExtension:@"png"];
NSString*stringPath = [imgPath absoluteString]; //this is correct
//you can again use it in NSURL eg if you have async loading images and your mechanism
//uses only url like mine (but sometimes i need local files to load)
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringPath]];
UIImage *ready = [[[UIImage alloc] initWithData:data] autorelease];
确保您的本地URL以“ file://”开头, 那么您只需执行以下操作:
NSData *fileData = [NSData dataWithContentsOfFile:fileURL.path];
对于swift3,我发现以下网址的答案很有帮助
(在使用phonegap插件捕获图像后,我正在遵循路径
文件:///var/mobile/Containers/Data/Application/B64B06DE-7976-45CF-9BE2-661F0F309A06/tmp/abcded.jpg)
https://stackoverflow.com/a/41043447/6383908
如果让videoURL = URL(string:urlString),让videodata =尝试?Data(contentsOf:videoURL){//在此处添加Alamofire代码}
guard let data = FileManager.default.contents(atPath: path) else
{ ...