2013-07-12 47 views
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]; 
    } 
} 

或者(最好是因为它会更容易调试如果需要的话),则//创建目录如下:

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

你需要一个'/'在波浪号之后,不是'''。 – ughoavgfhw

回答

0

您的第一线两个错误。 首先改变

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

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

,那么你必须展开~

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

这应该给你一个字符串像/Users/yourname/Desktop/ProjAlleleData

相关问题