将文件保存在iOS应用程序目录中

时间:2014-10-05 14:30:43

标签: android ios objective-c directory file-management

我在Android和iOS上都有一个应用程序,应用程序只需点击一下按钮即可下载并保存设备上的一些文件。我在Android中管理目录,并使用以下命令指定文件的URL:

Environment.getExternalStorageDirectory().getPath() + "/appDirectory/" + fileName

我想问一下在Objective c和iOS中指定它的方法是什么 现在我在objective-c中使用它:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask,YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@%@", documentDirectory, @"/myfile.mp4"];

filePath将返回如下内容:

/var/mobile/Applications/CFEDE74F0A493-499B/Library/Documentation/myfile.mp4

这是正确的方法吗?
非常感谢

1 个答案:

答案 0 :(得分:1)

在大多数情况下,你有正确的想法。 Apple建议使用基于NSURL的文件系统方法,因此,您可以执行以下操作:

NSError *error = nil;
NSURL *documentDirectory = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error];
if (!documentDirectory) {
    // Check error
}
NSURL *fileURL = [documentDirectory URLByAppendingPathComponent:@"myfile.mp4"];

如果您需要基于NSString的方法,则应使用内置方法添加路径组件,而不是使用stringWithFormat:

NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *fileURL           = [documentDirectory stringByAppendingPathComponent:@"myfile.mp4"];