Saving text file to documents directory in iOS 7
From Apple's Xcode Template:
/** Returns the URL to the application's Documents directory. */- (NSURL *)applicationDocumentsDirectory { return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];}
You can save like this:
NSString *path = [[self applicationDocumentsDirectory].path stringByAppendingPathComponent:@"fileName.txt"];[sampleText writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
Mundi's answer in Swift:
let fileName = "/File Name.txt" let filePath = self.applicationDocumentsDirectory().path?.stringByAppendingString(fileName) do { try strFileContents.writeToFile(filePath!, atomically: true, encoding: NSUTF8StringEncoding) print(filePath) } catch { // error saving file }func applicationDocumentsDirectory() -> NSURL { return NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last!}
-(void)writeATEndOfFile:(NSString *)content2 { NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; //make a file name to write the data to using the documents directory: NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", documentsDirectory]; if([[NSFileManager defaultManager] fileExistsAtPath:fileName]) { NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:fileName]; [fileHandle seekToEndOfFile]; NSString *writedStr = [[NSString alloc]initWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:nil]; content2 = [content2 stringByAppendingString:@"\n"]; writedStr = [writedStr stringByAppendingString:content2]; [writedStr writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil]; } else { int n = [content2 intValue]; [self writeToTextFile:n]; } } -(void) writeToTextFile:(int) value{ //get the documents directory: NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; //make a file name to write the data to using the documents directory: NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", documentsDirectory]; //create content - four lines of text // NSString *content = @"One\nTwo\nThree\nFour\nFive"; NSString *content2 = [NSString stringWithFormat:@"%d",value]; content = [content2 stringByAppendingString:@"\n"]; //save content to the documents directory [content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil]; }