【问题标题】:Save file in iOS application directory将文件保存在 iOS 应用程序目录中
【发布时间】:2014-10-05 14:30:43
【问题描述】:

我在 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


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

【问题讨论】:

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


    【解决方案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"];
    

    【讨论】:

    • 非常感谢,我使用了 NSString 方法,它运行良好;)还解决了我在代码中的其他错误之一:)
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多