如何下载文件并保存在本地iphone应用程序中?

时间:2011-10-15 04:12:36

标签: iphone xml local-storage

我已在本地保存了一个xml文件,并使用NSXmlParser(存储在Resource文件夹中)显示详细信息。但是,现在我想从url(从客户端)下载新的xml,并且需要将新的xml文件存储在本地,并且还需要从应用程序中删除现有的xml文件。我怎样才能做到这一点?有什么建议?有任何示例代码/项目可供参考吗?请帮我。感谢您阅读我可怜的英语。谢谢你的到来。

1 个答案:

答案 0 :(得分:2)

虽然您可以从yr资源目录中删除文件并保存新文件,但我的方法是主要在文档目录或缓存目录等app diretories上执行文件操作。

首先你要将xml文件从app资源保存到缓存目录,然后从那里访问文件。你也可以从资源目录中删除文件,不再需要它。 互联网上可用的任何新文件,然后首先从缓存中删除旧文件,并将新文件添加到缓存目录。

整个事情如下: -

    //get your cachedirectory path
NSArray *imagepaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachdirectory = [[NSString alloc] initWithString:[imagepaths objectAtIndex:0]];

//first save your file from resource directory to app's cache  directory
NSString * path = [[NSBundle mainBundle] pathForResource:@"fileinresource" ofType:@"xml"];
NSData *filedata = [NSData dataWithContentsOfFile:path];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *savename = [cachdirectory stringByAppendingPathComponent:@"mynewfile.xml"];
[fileManager createFileAtPath:savename contents:filedata attributes:nil];       

//remove file from resource directory
[fileManager removeItemAtPath:path error:nil];

//new file from internet is avilable then do following:first remove old file from cache
[fileManager removeItemAtPath:cachdirectory error:nil];

//save new file from internet
NSData *newfiledata=[NSData dataWithContentsOfURL:[NSURL URLWithString:myxmlurlstringpath]];
[fileManager createFileAtPath:savename contents:newfiledata attributes:nil];