user1573643
user1573643

Reputation: 47

Reading a file from documents directory Objective-c

I write a file to the documents directory of an app:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    // the path to write file
    NSString *file = [documentsDirectory stringByAppendingPathComponent:@"data.json"];

    [responseString writeToFile:file atomically:YES];

But how can I access the file?

My code looks like this:

NSString *filePath = [[NSFileManager defaultManager] pathForRessorce: @"data" ofType:@"JSON"];

    NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath]; 

    SBJsonParser *parser = [[SBJsonParser alloc] init];

    NSDictionary *data = (NSDictionary *) [parser objectWithString:fileContent error:nil];

The file path is not populated...can somebody give me a hint?

Thanks!

Upvotes: 0

Views: 14595

Answers (2)

user306481
user306481

Reputation: 135

"initwithcontentsoffile is deprecated" warning

So Instead of:

NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];

use:

NSString *userInfoFileContent = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];

Upvotes: 2

taskinoor
taskinoor

Reputation: 46027

You are reading from resource folder, not from document directory. You need to populate filePath in the same way that you have used during writing. That is:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"data.json"];
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];

Upvotes: 8

Related Questions