【问题标题】:Do we need to create subfolders in Documents before calling a writeToFile with a path that contains new folder?在使用包含新文件夹的路径调用 writeToFile 之前,我们是否需要在 Documents 中创建子文件夹?
【发布时间】:2012-11-18 00:52:50
【问题描述】:

我正在尝试写入以下路径:

        NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *storePath = [docDir stringByAppendingPathComponent:@"/newfolder/test.jpg"];

        NSData *data = [NSData dataWithData:UIImagePNGRepresentation(image)];
        BOOL saved = [data writeToFile:storePath atomically:NO];
        NSLog(@"%c", saved);

现在,什么都没有打印出来,我在模拟器中看不到文件。是不是因为尚未创建 Documents 主文件夹中的“newfolder”文件夹。如果是这样,如果还没有,有没有办法创建它?

谢谢!

【问题讨论】:

    标签: ios ios6 nsfilemanager


    【解决方案1】:

    是的,您必须确保先创建文件夹。使用NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error: 传递您要创建的文件夹的路径(而不是您要写入的文件)。

    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *storePath = [docDir stringByAppendingPathComponent:@"newfolder/test.jpg"];
    
    [[NSFileManager defaultManager] createDirectoryAtPath:[storePath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
    
    NSData *data = [NSData dataWithData:UIImagePNGRepresentation(image)];
    

    您应该检查这些方法的返回值并处理任何失败。

    【讨论】:

    • 甜蜜!谢谢,我会这样做的!
    • 请帮助创建用于在 iOS 中添加图像的文档文件夹。
    • 谢谢。在 '[NSFileManager defaultManager' 之后缺少一个 ']'。
    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 2013-10-10
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多