如何在iPhone设备上阅读文件?

时间:2012-01-18 19:09:15

标签: iphone file

我可以在路径中写文件:

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

但我无法读取此文件。 我必须做什么?

此致

2 个答案:

答案 0 :(得分:1)

上面列出的代码只是为您提供了文档目录的路径。

您需要提供特定文件......例如:

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]

获取文件的实际内容。

答案 1 :(得分:1)

您正在编写一个带有名称的文件到目录 当您想要读回该文件时,您必须告诉操作系统您要读取哪个文件。

下面是枚举目录中文件的代码,在本例中为“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 );
            }
         }
    }