Как я могу прочитать файл на устройстве iPhone? - PullRequest
0 голосов
/ 18 января 2012

Я могу записать файл по пути:

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

но я не могу прочитать этот файл. Что я должен сделать?

Привет

Ответы [ 2 ]

1 голос
/ 18 января 2012

Вы записываете файл с именем в каталог.
Когда вы хотите прочитать этот файл обратно, вы должны указать ОС, какой файл вы хотите прочитать.

Ниже приведен код, которыйперечисляет файлы в каталоге, в данном примере, в каталоге «Documents».

В какой-то момент код должен принять решение о том, какой файл читать.

NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent:  @"Documents"];
NSFileManager *localFileManager = [NSFileManager defaultManager];
NSDirectoryEnumerator *dirEnum =
    [localFileManager enumeratorAtPath:docsDir];


NSString *file;
while (file = [dirEnum nextObject]) {
            if ( [file isEqualToString: _The_NAME_YOU_ARE_LOOKING_FOR_] ) {
            NSString *fullPath = [NSString stringWithFormat:@"%@/%@", docsDir,file];
                // READ YOUR FILE FROM HERE
            NSDictionary *attrs = [localFileManager 
                       attributesOfItemAtPath:fullPath error:&error];
            if ( error ) {
               NSLog(@" error - %@", error);
            } else {
                NSLog(@" file : %@", file);
                NSInteger fsiz = [attrs fileSize];
                NSString *ftyp = [attrs fileType];
                NSDate   *fmod = [attrs fileModificationDate];
                            NSInteger fperm= [attrs filePosixPermissions];
                NSLog(@"  %9d : %@ : %@ : %@ : %d",  fsiz, file, ftyp, fmod, fperm );
            }
         }
    }
1 голос
/ 18 января 2012

Код, который вы перечислили выше, просто дает вам путь к каталогу документов.

Вам необходимо предоставить определенный файл ... такой как:

if([dirPaths count] > 0)
{
    NSString * documentsDirectory = [dirPaths objectAtIndex: 0];
    if(documentsDirectory)
    {
        NSString * docPath = [NSString stringWithFormat: @"%@/TheFileIAmLookingFor.txt",       
          [dirPaths objectAtIndex:0]];
    }
} 

, а затем попробуйте что-то вроде:

NSString * contentsOfDocPath = [[NSString alloc] initWithContentsOfFile: docPath]

чтобы получить фактическое содержимое файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...