objective-c - ObjC下载文件并将其保存到目录

标签 objective-c filesystems nsurl writetofile

我想从服务器“更新”本地文件(将其保存到目录)。 我尝试了一切!没有任何作用!这是我最后一次尝试:

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

最佳答案

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

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

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

[[NSData dataWithContentsOfURL:url] writeToFile:filePath atomically:TRUE];

关于objective-c - ObjC下载文件并将其保存到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8345869/

相关文章:

ios - 如何通过 AFNetworking 和 NSUrlSession 调用 SOAP Web 服务

iphone - 用 iPhone 控制蓝牙音频设备

c# - 设置整个组对目录的访问权限

c++ - 如何搜索具有特定模式的文件的路径

swift - 如何快速从 webView 获取 URL

ios - 如何在 objective-c 中打开https链接?

ios - iOS 中的图像旋转

iphone - 使用 block 回调时如何释放对象

linux - 有没有办法确定 Linux 中的 UFS 类型?

ios - AFNetworking 的默认超时秒数?