我想从服务器“更新”本地文件(将其保存到目录中)。 我尝试了一切!没有工作!这是我的最后一次尝试:
NSURL *url = [NSURL URLWithString:@"http://www.doothie.com/QAFrameworks/QAUpdater.php"];
NSData *urlData = [NSData dataWithContentsOfURL:url];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"general.qa"];
NSString *str = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
[str writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];
答案 0 :(得分:3)
不确定您是否正在尝试这样做,但您不应尝试下载并替换Application包中的文件。而是将文件下载到用户的~/Library/Application Support/<yourApplicationName>/<yourFiles>
。在应用程序包中使用该文件之前,请检查具有更多当前数据的文件是否在应用程序支持中。如果为所有用户安装了应用程序(/Applications/
内),则非管理员用户将无权更改应用程序包中的文件。 (并且不应假设每个用户都使用管理员权限运行。)
也许这就是发生的事情。
此外,您正在将所有内容加载到NSString中。该文件实际上是否包含文本?!如果没有,您可能想要使用NSData:
[[NSData dataWithContentsOfURL:url] writeToFile:filePath atomically:TRUE];