写入应用程序文档目录中的目录错误
问题描述:
我必须在这里丢失一些明显的东西,但我似乎无法找到答案。基本上,我曾经有过将代码写入应用程序文档目录的代码。该代码看起来像写入应用程序文档目录中的目录错误
- (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)
我在这里错过了什么吗?谢谢。
答
它看起来像你不断追加文件目录路径本身。在你的例子中,directoryPath
已经有文档目录路径。只要做[directoryPath stringByAppendingPathComponent:@"manifest.txt"]
。