首页 > 解决方案 > NSFileManager createDirectoryAtPath 方法返回 true 但没有创建目录

问题描述

在我的应用程序中,我想创建一个目录并将一些 txt 文件放入其中。这是我创建目录的代码

-(BOOL)createFolderInDocuments:(NSString *)folderName
{
    NSError *error = nil;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:folderName];
    
    BOOL success = YES;
    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
        success = [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error];
    
    if(error){
        UIAlertController * alert = [UIAlertController
                                     alertControllerWithTitle:@"Error"
                                     message:[NSString stringWithFormat:@"Create folder: %@", error]
                                     preferredStyle:UIAlertControllerStyleAlert];
        
        UIAlertAction* okButton = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){}];
        [alert addAction:okButton];
        [self presentViewController:alert animated:YES completion:nil];
    }
    
    if (success) {
        NSLog(@"Created folder with name %@", folderName);
    }
    return success;
}

运行该方法后,我在控制台中收到此消息

2021-11-01 15:16:23.786293+0800 my-app[887:167944] Created folder with name 2021-11-01T15-16-23

这意味着方法createDirectoryAtPath返回true

根据我使用此 repo https://github.com/Varvrar/ios_logger的经验,在我运行该方法后,我应该在 Finder 位置获得一个包含我的应用程序名称的文件夹,如下所示。 在此处输入图像描述

但我在这里什么都没有。实际上,我在 iPhone 上的任何地方都找不到该目录。所以我猜它根本没有被创造出来。

谁能告诉我如何正确创建目录?谢谢!

标签: iosobjective-cnsfilemanager

解决方案


好的,我想通了。该目录确实已创建,只是当 iPhone 连接到 Mac 时它没有显示在 Finder 中。

为了让它在 Finder 中显示,请在 xcode 项目 info.plist 中添加此权利 在此处输入图像描述


推荐阅读