1

对于我的程序,我需要在 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 目录下面:

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

1 回答 1

0

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

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

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

那么你必须扩展~

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

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

于 2013-07-12T00:31:09.560 回答