Ios 如何在mac中的NSLibraryDirectory中创建文件夹

Ios 如何在mac中的NSLibraryDirectory中创建文件夹,ios,osx-lion,Ios,Osx Lion,我试图在用户库目录中创建一个文件夹,但它没有创建。下面的代码有错误吗 databaseName = @"KITSMAW0051_DB.sqlite"; // Get the path to the documents directory and append the databaseName NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)

我试图在用户库目录中创建一个文件夹,但它没有创建。下面的代码有错误吗

databaseName = @"KITSMAW0051_DB.sqlite";
// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *folder = @"Swasstik";
databasePath = [[documentsDir stringByAppendingPathComponent:folder ] stringByAppendingPathComponent:databaseName];

确定首先
databasePath
描述文件的路径,而不是目录。但假设您确实想要在用户库中创建“Swasstik”文件夹:

// Your code
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *folder = @"Swasstik";
// I edited here to keep only the folder
NSString *folderPath = [documentsDir stringByAppendingPathComponent:folder];

// At this point we got the path to the folder
// but we want to actually go on and create it
// NSFileManager to the rescue!
NSFileManager *manager = [NSFileManager defaultManager];
[manager createDirectoryAtPath: folderPath
 withIntermediateDirectories: NO
 attributes: nil
 error: nil];

当然,您可以根据自己的喜好设置管理器,还可以实现一些错误处理。我希望这是有意义的…

好的,首先
数据库路径
描述的是指向文件的路径,而不是目录。但假设您确实想要在用户库中创建“Swasstik”文件夹:

// Your code
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *folder = @"Swasstik";
// I edited here to keep only the folder
NSString *folderPath = [documentsDir stringByAppendingPathComponent:folder];

// At this point we got the path to the folder
// but we want to actually go on and create it
// NSFileManager to the rescue!
NSFileManager *manager = [NSFileManager defaultManager];
[manager createDirectoryAtPath: folderPath
 withIntermediateDirectories: NO
 attributes: nil
 error: nil];
databaseName = @"KITSMAW0051_DB.sqlite";
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *folder = [documentsDir stringByAppendingPathComponent:@"Swasstik"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
if (![fileManager fileExistsAtPath:folder]) {
    [fileManager createDirectoryAtPath:folder withIntermediateDirectories:YES attributes:nil error:&error];
}
if (error != nil) {
    NSLog(@"Some error: %@", error);
    return;
}
NSString *databasePath = [folder stringByAppendingPathComponent:databaseName];
当然,您可以根据自己的喜好设置管理器,还可以实现一些错误处理。我希望这是有意义的

databaseName = @"KITSMAW0051_DB.sqlite";
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *folder = [documentsDir stringByAppendingPathComponent:@"Swasstik"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
if (![fileManager fileExistsAtPath:folder]) {
    [fileManager createDirectoryAtPath:folder withIntermediateDirectories:YES attributes:nil error:&error];
}
if (error != nil) {
    NSLog(@"Some error: %@", error);
    return;
}
NSString *databasePath = [folder stringByAppendingPathComponent:databaseName];