我似乎无法让nsdata写入文件。我有什么想法可能做错了。提前谢谢。
NSString* filename = @"myfile.txt";
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:filename];
if ([fileManager fileExistsAtPath:applicationDocumentsDir])
NSLog(@"applicationDocumentsDir exists"); // verifies directory exist
NSData *data = [NSData dataWithContentsOfURL:URL];
if (data) {
NSString *content = [[NSString alloc] initWithBytes:[data bytes]
length:[data length] encoding: NSUTF8StringEncoding];
NSLog(@"%@", content); // verifies data was downloaded correctly
NSError* error;
[data writeToFile:storePath options:NSDataWritingAtomic error:&error];
if(error != nil)
NSLog(@"write error %@", error);
}
我一直收到错误
"The operation couldn’t be completed. No such file or directory"
答案 0 :(得分:5)
尝试
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"myfile.txt"];
并且
if ([[NSFileManager defaultManager] fileExistsAtPath:storePath])
NSLog(@"applicationDocumentsDir exists");
答案 1 :(得分:0)
要获取更多信息,可以使用
writeToFile:options:错误:
代替
writeToFile:原子上:
,但是您需要在执行写操作之前在路径中创建所有子目录。像这样:
// if the directory does not exist, create it...
if ( [fileManager fileExistsAtPath:dir_path] == NO ) {
if ( [fileManager createDirectoryAtPath:dir_path withIntermediateDirectories:NO attributes:NULL error:&error] == NO ) {
NSLog(@"createDirectoryAtPath failed %@", error);
}
}