2

我想从服务器“更新”本地文件(将其保存到目录中)。我什么都试过了!没有任何效果!这是我最后一次尝试:

    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];
4

1 回答 1

3

不确定这是否是您想要做的,但您不应该尝试下载和替换应用程序包中的文件。相反,将文件下载到用户的~/Library/Application Support/<yourApplicationName>/<yourFiles>. 在您的应用程序包中使用该文件之前,请检查具有更多当前数据的文件是否在应用程序支持中。如果您的应用程序已为所有用户(在 内/Applications/)安装,非管理员用户将无权更改应用程序包中的文件。(而且永远不应该假设每个用户都以管理员权限运行。)

也许这就是正在发生的事情。

此外,您正在将所有内容加载到 NSString 中。该文件是否实际上包含文本?!如果没有,您可能想改用 NSData :

[[NSData dataWithContentsOfURL:url] writeToFile:filePath atomically:TRUE];
于 2011-12-01T18:17:51.947 回答