79

iOS でファイルを書き込むにはどうすればよいですか? 私は次のコードでそれをやろうとしていますが、何か間違っています:

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];

リソースに MyFile.txt を作成しました。

4

4 に答える 4

110

これはあなたに役立つかもしれません。

//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];

}
于 2011-04-11T10:09:10.860 に答える
26

あなたのコードは私の最後で機能しています。私はちょうどそれをテストしました。変更内容はどこで確認していますか? Documents ディレクトリ パスを使用します。パスを取得するには -

NSLog(@"%@",documentsDirectory);

コンソールからパスをコピーしてからファインダーを開き、Cmd+shift+g を押してここにパスを貼り付けてからファイルを開きます

于 2011-04-11T10:16:35.113 に答える
7

作ってみてください

NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile"];

なので

NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile.txt"];
于 2011-04-11T10:13:11.700 に答える