iOS递归删除文件求解,有代码,但是效果没达到,求大神指点

 + (void)dele:(NSString *)path {
    NSFileManager *manager = [NSFileManager defaultManager];
    BOOL isDir = NO;
    BOOL isExist = [manager fileExistsAtPath:path isDirectory:&isDir];
    if (isExist) {
        if (isDir) {
            NSArray *dirArray = [manager contentsOfDirectoryAtPath:path error:nil];
            NSString *sub = nil;
            for (NSString *str in dirArray) {
                sub = [path stringByAppendingPathComponent:str];
                BOOL isSubDir = NO;
                [manager fileExistsAtPath:sub isDirectory:&isSubDir];
                [self dele:sub];
            }
        }else {
            [manager removeItemAtPath:path error:nil];
        }
    }else {
        NSLog(@"你查找的路径不存在");
    }
}

代码如上,这是在百度查到的,但是这个代码有点问题,就是文件夹中包含文件夹,就会进入下个文件夹,而无法删除文件了,求大神指点修改一下

-(void)clearCache
{
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingString:@"/Caches"];
NSFileManager * manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:filePath]) {
if ([manager fileExistsAtPath:filePath]){

        NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:filePath] objectEnumerator];

        NSString* fileName = nil;

        while ((fileName = [childFilesEnumerator nextObject]) != nil){
            NSString* fileAbsolutePath = [filePath stringByAppendingPathComponent:fileName];
            [manager removeItemAtPath:fileAbsolutePath error:nil];
        }
    }
}

}

iOS上很多文件没有权限删除的。