2013-09-16 27 views
0

我正在學習Objective-C,並且我有一個將文本文件傳遞給NSFileManager類的問題。我在我的程序所在的同一目錄中創建了新的空文件「testfile」,但NSFileManager無法找到該文件。我不知道是什麼問題:如何正確地將文本文件傳遞給NSFileManager

NSString *fileName = @"testfile"; 
    NSFileManager *fileMgr; 
    NSDictionary *attrib; 

    fileMgr = [NSFileManager defaultManager]; 

    NSLog(@"%@",[fileMgr currentDirectoryPath]); 

    // verifying the test file exists 
    if([fileMgr fileExistsAtPath: fileName] == NO) { 
     NSLog(@"File doesn't exist"); 
     return 1; 
    } 

這是額外的屏幕截圖,從我的程序

enter image description here

+0

什麼是當前目錄?該目錄中是否有該文件? – trojanfoe

+0

是的。如果你看截圖,你可以看到我把它放在文件所在的同一目錄中......如果我當然正確理解同一個目錄意味着什麼 – user2759428

+0

我不認爲你這樣做。查看打印出的NSLog()調用的目錄,並將其與測試文件的位置進行比較。你通常會做的是將文件包含在應用程序包中,然後使用'NSBundle'調用來確定應用程序包當前所在的位置。 – trojanfoe

回答

0

這是很可能肯定的是,該文件不在目錄中的程序正在運行。當您從Xcode運行程序時,它通常直接運行在Xcode項目的頂層。 NSLog應該準確告訴你哪個目錄。

請注意,默認情況下,Xcode對於整個項目和每個目標代碼的子目錄都有一個頂級目錄。所以,如果你的項目是直接在你的主目錄時,Xcode將在

/Users/<your home>/prog36 

運行程序,但您的文本文件(在目標目錄是)是

/Users/<your home>/prog36/prog36 

注意兩個嵌套目錄,都稱爲prog36

相關問題