Wie schreibe ich eine Datei unter iOS? Ich versuche es mit dem folgenden Code zu machen, aber ich mache etwas falsch:
char *saves = "abcd";
NSData *data = [[NSData alloc] initWithBytes:saves length:4];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile"];
[data writeToFile:appFile atomically:YES];
Ich habe MyFile.txt für Ressourcen erstellt.
Antworten:
Ihr Code funktioniert an meinem Ende, ich habe ihn gerade getestet. Wo überprüfen Sie Ihre Änderungen? Verwenden Sie den Verzeichnispfad "Dokumente". Weg bekommen -
NSLog(@"%@",documentsDirectory);
Kopieren Sie den Pfad von der Konsole, öffnen Sie den Finder und drücken Sie Cmd + Umschalt + g. Fügen Sie den Pfad hier ein und öffnen Sie dann Ihre Datei
quelle
Vielleicht ist das nützlich für Sie.
//Method writes a string to a text file -(void) writeToTextFile{ //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"; //save content to the documents directory [content writeToFile:fileName atomically:NO encoding:NSUTF8StringEncoding error:nil]; } //Method retrieves content from documents directory and //displays it in an alert -(void) displayContent{ //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]; NSString *content = [[NSString alloc] initWithContentsOfFile:fileName usedEncoding:nil error:nil]; //use simple alert from my library (see previous post for details) [ASFunctions alert:content]; [content release]; }
quelle
Schnell
func saveFile() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] as! String let fileName = "\(documentsDirectory)/textFile.txt" let content = "Hello World" content.writeToFile(fileName, atomically: false, encoding: NSUTF8StringEncoding, error: nil) } func loadFile() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] as! String let fileName = "\(documentsDirectory)/textFile.txt" let content: String = String(contentsOfFile: fileName, encoding: NSUTF8StringEncoding, error: nil)! println(content) }
Swift 2
func saveFile() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content = "Hello World" do{ try content.writeToFile(fileName, atomically: false, encoding: NSUTF8StringEncoding) }catch _ { } } func loadFile()->String { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content: String do{ content = try String(contentsOfFile: fileName, encoding: NSUTF8StringEncoding) }catch _{ content="" } return content; }
Swift 3
func saveFile() { let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content = "Hello World" do{ try content.write(toFile: fileName, atomically: false, encoding: String.Encoding.utf8) }catch _ { } } func loadFile()->String { let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content: String do{ content = try String(contentsOfFile: fileName, encoding: String.Encoding.utf8) } catch _{ content="" } return content; }
quelle
Versuchen Sie es
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile"];
wie
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile.txt"];
quelle