2013-03-01 106 views
0

我必须在这里丢失一些明显的东西,但我似乎无法找到答案。基本上,我曾经有过将代码写入应用程序文档目录的代码。该代码看起来像写入应用程序文档目录中的目录错误

- (NSString *)applicationDocumentsDirectory { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return documentsDirectory; 
} 

//实际写代码的另一种方法

NSString *manifestPath = @"manifest.txt"; 
[manifestData writeToFile:manifestPath options:NSDataWritingAtomic error:&error]; 

所以这个工作得很好。现在我想在文档目录中创建一个新文件夹并写入该文件夹。所以创建我的新文件夹我做:

NSFileManager *fileManager = [NSFileManager defaultManager]; 

BOOL isDir; 
NSString *directoryPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"testDir"]; 
NSError *error = nil; 
if (![fileManager fileExistsAtPath:directoryPath isDirectory:&isDir]) { 
    if (!isDir) { 
     [fileManager createDirectoryAtPath:directoryPath withIntermediateDirectories:NO attributes:nil error:&error]; 
    } 
} 

这部分工作正常。

不工作的部分是当我想创建我的新manifestPath到这个目录并写入该目录。我试过

NSString *manifestPath = [[[self applicationDocumentsDirectory] stringByAppendingPathComponent:directoryPath] stringByAppendingPathComponent:@"manifest.txt"]]; 

NSString *manifestPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/manifest.txt", directoryPath]; 

我错过了与方式的路径,或目录的工作什么?我不断收到Cocoa错误4.当我打印出路径时,我的路径看起来也是正确的。 (iOS模拟器目录/ testDir/manifest.txt)

我在这里错过了什么吗?谢谢。

回答

1

它看起来像你不断追加文件目录路径本身。在你的例子中,directoryPath已经有文档目录路径。只要做[directoryPath stringByAppendingPathComponent:@"manifest.txt"]