写入app的文档目录中的目录错误

时间:2013-03-01 22:56:54

标签: ios nsfilemanager

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

- (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 个答案:

答案 0 :(得分:1)

看起来您继续将文档目录路径附加到自身。在您的示例中,directoryPath已经包含文档目录路径。只需[directoryPath stringByAppendingPathComponent:@"manifest.txt"]