NSFileManager创建文件夹herarichy&不保存plist [打开]

时间:2012-10-03 13:21:11

标签: ios plist nsfilemanager nsdocumentdirectory

问题出现在设备上而非模拟器上。

 NSError *error;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Plist1.plist"]; 

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSLog(@"documentsDirectory  --- %@", documentsDirectory);
    NSLog(@"path --- %@", path);
    @try
    {
        if (![fileManager fileExistsAtPath:path])
        {
            [fileManager copyItemAtPath:documentsDirectory toPath:path error:&error];
        }
    }
    @catch (NSException *exception)
    {
        NSLog(@" [exception description] -- %@", [exception description]);
    }
    @finally {

    }

    [dictEmot writeToFile:path atomically:YES];

    // To verify
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
    NSLog(@"[dict allKeys] My plist ----- %@", [dict allKeys]); 

上面是我编写的代码,用于在文档目录中保存两个plist文件。我用来保存第二个plist的方法相同。

[self savePlist:plist1];
[self savePlist:plist2];

我的问题是,每当我尝试保存第二个plist时,它会在文档目录中创建文件夹层次结构,也不会保存带有内容的plist2文件。

一旦它完成了第二个方法调用,我的app文档目录如下所示,

Documents
 -> plist1
   -> plist1
      .
      .
      .
     -> plist1
       -> plist1
other files

我也在主线程上做了同样的结果。

它甚至没有打印例外。

  • 我的错误是什么?

    - 为什么要创建层次结构?

1 个答案:

答案 0 :(得分:0)

我对iOS知之甚少,但我认为你的问题在于stringByAppendingPathComponent:@"Plist1.plist"检查你的文档,因为我对“Appending”这个词感到很沮丧,即使你发送了新的文件名,因为你正在硬编码文件名到Plist1.plist ...

我仍然不确定,因为我很长时间没有完成iOS编码。