NSCachesDirectory不是我文件系统中的目录

时间:2011-08-10 16:59:59

标签: iphone ios objective-c ipad caching

我正在尝试将某些内容存储在我的i​​Pad应用上的Caches文件夹中。

    NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString* cachePath = [cachePathArray lastObject];

当我打印出返回的文件路径时,我得到:

  

/ Users / Gela / Library / Application Support / iPhone   模拟器/ 5.0 /应用/ 3FF7EB1A-4​​9A9-4B13-ADC4-DF0662BA724B /库/缓存

但是,当我导航到硬盘上的该文件夹时,“缓存”不是文件夹,而是模糊的“文档”文件。

任何想法为什么它不是文件夹以及我如何写入我的缓存?

1 个答案:

答案 0 :(得分:13)

也许Simulator没有Caches目录。你在设备上试试这个......

您可以像这样访问Caches目录。我用这种方法获取文件数据......

- (NSString *)getFileData: (NSString *)fileDirPath
{
    NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *myPath    = [myPathList  objectAtIndex:0];
    NSError *err        = nil;
    NSString *fData     = @"";

    myPath = [myPath stringByAppendingPathComponent:fileDirPath];
    if([[NSFileManager defaultManager] fileExistsAtPath:myPath])
    {
        fData = [NSString stringWithContentsOfFile:myPath encoding:NSUTF8StringEncoding error:&err];
        if(err) NSLog(@"getFileData() - ERROR: %@",[err localizedDescription]);
    }
    else
    {
        NSLog(@"getFileData() - ERROR: This file '%@' does not exist",myPath);
    }
    return fData;
}