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。
我不确定我做错了什么。我想要的是创建一个名为 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。