获取存储在应用程序文档文件夹中的文件内容

时间:2013-10-14 05:55:08

标签: ios objective-c xcode

我想在我的应用程序文档文件夹中获取文件内容。所以我写下面的代码。但是此代码未在我的应用程序文档文件夹中获取文件内容。在我的文档文件夹中包含我需要的文件。

- (void) displayContents
{
    NSString *folderName = [@"Object File/" stringByAppendingString:strLastpath];
    NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsDir = [dirPaths objectAtIndex:0];
    databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:folderName]];
    NSError *theError = nil;

    NSFileManager *filemgr;
    NSArray *filelist;
    int count;
    int i;

    filemgr =[NSFileManager defaultManager];
    filelist = [filemgr contentsOfDirectoryAtPath:databasePath error:&theError];
    count = [filelist count];

    for (i = 0; i < count; i++)
    {
        NSLog(@"%@", filelist[i]);
    }

}

我得到的错误是:

2013-10-14 11:18:55.680 SampleFileCreation[1599:c07] Database Path : /Users/mac/Library/Application Support/iPhone Simulator/6.1/Applications/3B43DFF3-6699-4D68-94A6-A5153F3B1404/Documents/Object File/banana.obj
2013-10-14 11:18:55.683 SampleFileCreation[1599:c07] File Exists
2013-10-14 11:18:55.685 SampleFileCreation[1599:c07] Error : The operation couldn’t be completed. (Cocoa error 260.)

5 个答案:

答案 0 :(得分:1)

Cocoa error 260 是一个NSFileReadNoSuchFileError,意味着在您指定的路径中找不到该文件。

问题是您的路径仍然包含编码空格(%20),因为您将其基于带路径的URL.use URL。

答案 1 :(得分:0)

试试这个:

    NSString *folderName = [@"Object File/" stringByAppendingString:strLastpath];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSURL *fileURL = [[[fileManager URLsForDirectory:searchPathDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:folderName];
    filelist = [filemgr contentsOfDirectoryAtPath:fileURL.path error:&theError];

答案 2 :(得分:0)

 NSString *filename=[NSString stringWithFormat:@"%@.txt",textfile];

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];
 NSString *filePath = [documentsDirectory stringByAppendingPathComponent:filename];
 NSURL *txtURL = [NSURL fileURLWithPath:filePath];
 NSString *result= [[NSString alloc] initWithContentsOfURL:txtURL encoding:NSUTF8StringEncoding error:nil];

您可以在此处获得结果中的结果字符串。

答案 3 :(得分:0)

我找到了答案。我获取该文件的内容。 用这个。

NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsDir = [dirPaths objectAtIndex:0];
    databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:strLastpath]];
    NSError *theError = nil;

NSString *fileStering = [[NSString alloc]initWithContentsOfFile:databasePath encoding:NSISOLatin1StringEncoding error:&theError];

答案 4 :(得分:0)

这是NSFileReadNoSuchFileError所以尝试清理你的项目并从一个干净的版本开始,如果你仍然有文件,希望你能够阅读它。