NSFileManager removeItemAtPath在多次调用时删除整个文件夹

时间:2013-01-23 11:41:59

标签: ios file nsfilemanager

我有以下代码,应该删除3个文件:

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

NSString *pngFilePath = [docDir stringByAppendingPathComponent:currentFileName];
NSLog(@"png %@",pngFilePath);

NSString *thumbFilePath = [docDir stringByAppendingPathComponent:currentThumbFileName];
NSLog(@"thumb %@",thumbFilePath);

NSString *plistFilePath = [docDir stringByAppendingPathComponent:currentPlistName];
NSLog(@"plist %@",plistFilePath);

NSError *error, *error2, *error3;
[[NSFileManager defaultManager] removeItemAtPath:pngFilePath error:&error];
[[NSFileManager defaultManager] removeItemAtPath:thumbFilePath error:&error2];
[[NSFileManager defaultManager] removeItemAtPath:plistFilePath error:&error3];

但是,它会删除整个Documents文件夹。但是如果我评论最后三行中的两行,那么它只删除其中一个文件,它只删除该文件。

更新:这是NSLog:

2013-01-23 13:51:28.715 Amaziograph[16466:c07] png /Users/Hristo/Library/Application Support/iPhone Simulator/5.1/Applications/C9FAA196-7904-4070-A208-A53451A64602/Documents/amaziograph_2013_01_23_13_43_37.png
2013-01-23 13:51:28.716 Amaziograph[16466:c07] thumb /Users/Hristo/Library/Application Support/iPhone Simulator/5.1/Applications/C9FAA196-7904-4070-A208-A53451A64602/Documents/amaziograph_2013_01_23_13_43_37_thumb.png
2013-01-23 13:51:28.716 Amaziograph[16466:c07] plist /Users/Hristo/Library/Application Support/iPhone Simulator/5.1/Applications/C9FAA196-7904-4070-A208-A53451A64602/Documents/amaziograph_2013_01_23_13_43_37.plist

如何删除所有3个?

1 个答案:

答案 0 :(得分:1)

原来我调用了上面的代码两次 - 第一次没有特定的文件名,所以它删除了文件的文件夹。 NSLog说:

png /Users/... .../Documents/(null).png

所以Documents文件夹被删除了。 但是,如果一次只删除一个文件,我无法解释为什么会有效。