【发布时间】:2012-02-13 13:22:41
【问题描述】:
是否可以通过 NSFileManger 从远程服务器加载和处理文件?
fileManager contentsOfDirectoryAtURL:@"https ...
通过 URLConnection 连接以在服务器上进行身份验证。
如果这不可能,那么读取目录内容和下载文件的最佳方法是什么?
【问题讨论】:
标签: objective-c ios nsfilemanager
是否可以通过 NSFileManger 从远程服务器加载和处理文件?
fileManager contentsOfDirectoryAtURL:@"https ...
通过 URLConnection 连接以在服务器上进行身份验证。
如果这不可能,那么读取目录内容和下载文件的最佳方法是什么?
【问题讨论】:
标签: objective-c ios nsfilemanager
HTTP 没有目录只有文件的概念,通过 HTTP 同步读取文件的最简单方法是 NSString stringWithContentsOfURL:encoding:error: e.g.:
NSString *robots = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://*.com/robots.txt"] encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",robots);
这里是一个 ftp 的例子:
NSURLResponse *response;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ftp://ftp.ruby-lang.org/pub/misc/webrick-cve-2010-0541.diff"]] returningResponse:&response error:&error];
if(data == nil) {
NSLog(@"Error: %@", [error localizedDescription]);
}else{
NSString *str = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"got %@",str);
}
【讨论】:
我试过了,还是不行。
NSFileManager 无法通过 http: 访问服务器上的文件...
会产生 CocoaError 262 = NSFileReadUnsupportedSchemeError。
【讨论】: