我正在尝试使用以下代码编写一个简单的字符串文件:
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",
documentsDirectory];
NSString *content = @"Test Content";
NSError *error = nil;
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:&error];
NSLog(@"Error %@ %@", fileName, error);
但该文件未写入且错误为空。
我在iOS模拟器中运行代码,并期望将文件写入以下位置:/ Users / user / Library / Developer / CoreSimulator / Devices / 85DDC17D-A771-40D9-99BE-71FF6B60D2DF / data /容器/数据/应用程序/ BD30A945-25DB-4ECE-B7F7-E9C20C6691C7 / Documents / textfile.txt(来自NSLog的fileName的路径)。
答案 0 :(得分:0)
正如@rckoenes指出的那样,我的其余代码中出现了错误。我有一个函数删除“文档”中的所有文件,我只是不记得我有这个功能,并且由于代码的长度(> 5000行)很难找到。谢谢大家!
答案 1 :(得分:-1)
使用网址是一种有点可靠的方式,所以我会稍微重新理解你的想法,例如这样:
NSURL *_documentFolder = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *_fileURL = [_documentFolder URLByAppendingPathComponent:@"textFile.txt"];
NSError *_error = nil;
BOOL _success = [@"hello!" writeToURL:_fileURL atomically:TRUE encoding:NSUTF8StringEncoding error:&_error];
在模拟器和真实设备上也能完美运行,文件textFile.txt
将包含内容hello!
。
注意:如果_success
值为FALSE
,您可以通过_error
获取有关原因的更多信息,即使您只是记录它到调试控制台。我没有在我的示例中隔离NSString
,但您可以将其替换为您自己的实例。
答案 2 :(得分:-2)
请查看以下代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[pathsobjectAtIndex:0]stringByAppendingPathComponent:@"textfile.txt"];
NSString *temp = [[NSString alloc] initWithString:@"Test Content"];
[temp writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];