尝试创建目录 - 没有错误,但它不起作用?

时间:2013-07-12 00:04:08

标签: objective-c nsfilemanager create-directory

对于我的程序,我需要在OS X上在桌面上创建一个目录(最终我会改变它,但现在更容易在那里做)。 从我读过的例子来看,这应该有效,但事实并非如此。 我没有从Xcode得到任何错误,也没有我的程序使用最底层的替代尝试得到任何错误。 它也不会在我的桌面上创建一个名为ProjAlleleData的目录。

NSString *dirName1 = @"~'Desktop/ProjAlleleData";
NSFileManager *fm;
fm = [NSFileManager defaultManager];    
numb1 = 1;
//Makes sure directory exists and has correct permissions.
while ( numb1 == 1) {
    if ([fm fileExistsAtPath: dirName1] == YES) {
        if ([fm isWritableFileAtPath: dirName1] == YES) {
            if ([fm isReadableFileAtPath: dirName1] == YES) {
                numb1 = 0;
            }
            else {
                NSLog(@"Permissions error.");
                return 1;}
        }
        else {
            NSLog(@"Permissions error.");
            return 1;}
    }
    else {
        //create directory
        [fm createDirectoryAtPath: dirName1 withIntermediateDirectories: YES attributes: nil error: NULL];
    }
}

或者(最好是在需要时更容易调试),在// create directory:

下面
        if ([fm createDirectoryAtPath: dirName1 withIntermediateDirectories: YES attributes: nil error: NULL] != YES) {
            NSLog(@"Save File Creation Error. (dir1)");
            return 1;

1 个答案:

答案 0 :(得分:0)

第一行中有两个错误。 第一次改变

NSString *dirName1 = @"~'Desktop/ProjAlleleData";

NSString *dirName1 = @"~/Desktop/ProjAlleleData";

然后你必须扩展~

NSString *dirName1 = [@"~/Desktop/ProjAlleleData" stringByExpandingTildeInPath];

那应该给你一个像/Users/yourname/Desktop/ProjAlleleData

这样的字符串