我在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
这是正确的方法吗?
非常感谢
答案 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"];