iOS - 在 Documents 文件夹中创建一个新目录

iOS - creating a new directory in Documents folder

我不确定我做错了什么。我想要的是创建一个名为 Audio 的新目录(如果尚不存在),然后将文件保存到 Audio 目录中。当前输出是没有创建目录,文件保存到Documents目录。这是我正在使用的代码:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *audioDirPath = [NSString stringWithFormat:@"%@Audio", [appDelegate applicationDocumentsDirectory].absoluteString];

NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:audioDirPath]) {
    [fileManager createDirectoryAtPath:audioDirPath withIntermediateDirectories:NO attributes:nil error:nil];
}
NSURL *audioDirURL = [NSURL URLWithString:audioDirPath];
NSURL *path = [NSURL URLWithString:@"test.mp3" relativeToURL:audioDirURL];
[self.documentData writeToURL:path atomically:YES];

想法?

问题是你没有正确形成路径。无论如何,最好尽可能使用 URLs。当你这样做时,使用 URLByAppendingPathComponent: 到 "drill down" 一个级别。因此:

NSFileManager* fm = [NSFileManager new];
NSError* err = nil;
NSURL* docsurl =
    [fm URLForDirectory:NSDocumentDirectory
               inDomain:NSUserDomainMask appropriateForURL:nil
                 create:YES error:&err];
// error checking omitted
NSURL* myfolder = [docsurl URLByAppendingPathComponent:@"Audio"];
BOOL ok =
    [fm createDirectoryAtURL:myfolder
        withIntermediateDirectories:YES attributes:nil error:&err];
// error-checking omitted

现在 myfolder 是您要写入的文件夹的 URL。同样,使用 URLByAppendingPathComponent 导出要写入的文件的 URL。