我有一个NSURL
对象,它给出了一个本地文件的路径(在文档文件夹中)。我想要用这个文件的内容填充一个NSData
对象。尝试使用dataWithContentsOfURL:
,但失败了。我知道该文件存在,因为iPhone SDK
返回了路径。
请问有人可以告诉我如何从本地文件的URL
获取一个NSData
对象吗?
谢谢。
我有一个NSURL
对象,它给出了一个本地文件的路径(在文档文件夹中)。我想要用这个文件的内容填充一个NSData
对象。尝试使用dataWithContentsOfURL:
,但失败了。我知道该文件存在,因为iPhone SDK
返回了路径。
请问有人可以告诉我如何从本地文件的URL
获取一个NSData
对象吗?
谢谢。
// 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];
guard let data = FileManager.default.contents(atPath: path) else
{ ...