我必须在这里遗漏一些明显的东西,但我似乎无法找到答案。基本上,我曾经有代码将文件写入应用程序的文档目录。该代码看起来像
- (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)
我在这里遗漏了什么吗?感谢。
答案 0 :(得分:1)
看起来您继续将文档目录路径附加到自身。在您的示例中,directoryPath
已经包含文档目录路径。只需[directoryPath stringByAppendingPathComponent:@"manifest.txt"]
。