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