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)

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

4

1 回答 1

1

看起来您一直在将文档目录路径附加到自身。在您的示例directoryPath中已经有文档目录路径。做吧[directoryPath stringByAppendingPathComponent:@"manifest.txt"]

于 2013-03-01T23:03:30.920 回答