陷入困境创建NSCachesDirectory的子目录并向其添加图像

时间:2012-08-02 00:56:00

标签: ios ios5 nsfilemanager

编辑:帖子末尾的解决方案

我在创建NSCachesDirectory的子目录并向其添加NSData对象时遇到了问题。我已经提到了与此相关的多个SO帖子但是当我调试我的代码时,它告诉我该文件夹中的NSData文件不存在。我的代码:

NSURL *photoURL = [FlickrFetcher urlForPhoto:self.singlePhotoDictionary
                                          format:FlickrPhotoFormatLarge];
    NSData *URLToData = [NSData dataWithContentsOfURL:photoURL];

    NSString *cacheDirectory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *newDirectory = [cacheDirectory stringByAppendingPathComponent:@"Photos"];

    BOOL isDir = NO;
    NSError *error;
    if (! [[NSFileManager defaultManager] fileExistsAtPath:newDirectory isDirectory:&isDir] && isDir == NO)
      {
        [[NSFileManager defaultManager]createDirectoryAtPath:newDirectory withIntermediateDirectories:NO attributes:nil error:&error];
      }

    NSString *filePath = [newDirectory stringByAppendingPathComponent:@"thePhotos.jpg"];
    NSLog(@"%@", filePath);

        //[URLToData writeToFile:filePath atomically:NO];
    [[NSFileManager defaultManager] createFileAtPath:filePath contents:URLToData attributes:nil];
    NSData *theData = [[NSFileManager defaultManager] contentsAtPath:filePath];
    NSArray *contentsInManager = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:newDirectory error:nil];

theData和contentsInManager结果是:

theData NSData *    0x00000000

contentsInManager       NSArray *        0x00000000

这里有什么帮助吗?子目录存在,但不会在其中创建文件。

作为一个侧面问题:我们何时需要创建自己的NSFileManager实例而不是使用defaultManager?

提前致谢!

解决方案:经过反复试验,我尝试删除子目录并重新创建。一旦我这样做,该文件就能写入子目录。

0 个答案:

没有答案