获取沙盒文件(深度遍历和浅度遍历)

来源:互联网 发布:花生壳域名查询 编辑:程序博客网 时间:2024/05/29 17:00
/**
 *  获取沙盒中某种文件的路径和名字,存入字典返回
 *
 *  @param type    文件类型
 *  @param dirPath 文件目录
 *
 *  @return
 */
-(NSMutableArray *)getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *)dirPath
{
    NSMutableArray *filenamelist = [NSMutableArray arrayWithCapacity:10];
    NSArray *tmplist = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirPath error:nil];
    NSMutableDictionary * fileDic = [NSMutableDictionary dictionary];
    for (NSString *filename in tmplist) {
        NSString *fullpath = [dirPath stringByAppendingPathComponent:filename];
        if ([self isFileExistAtPath:fullpath]) {
            if ([[filename pathExtension] isEqualToString:type]) {
                fileDic[@"fileName"] = filename;
                fileDic[@"filePath"] = fullpath;
                [filenamelist  addObject:fileDic];
            }
        }
    }
    
    return filenamelist;
}
/**
 *  判断文件路径是否存在
 *
 *  @param fileFullPath 文件路径
 *
 *  @return
 */
-(BOOL)isFileExistAtPath:(NSString*)fileFullPath {
    BOOL isExist = NO;
    isExist = [[NSFileManager defaultManager] fileExistsAtPath:fileFullPath];
    return isExist;
}
/**
 *  浅度遍历:根据目录路径获取该目录下所有文件夹
 *
 *  @param directory 指定目录路径
 */
-(NSArray*)getAllFolderWithTheSpecifiedDirectory:(NSString*)directory{
    
    NSError *nserr = nil;
    NSFileManager * nsfm = [NSFileManager defaultManager];
    NSArray *fileArr = [nsfm contentsOfDirectoryAtPath:directory error:&nserr];
    //如果查看失败,(如:目录不存在),该方法会创建一个NSError对象,让传入的指针指向这个对象。
    //如果成功,创建一个数组,装文件和子目录名称,返回数组地址
    if(nserr){
        DDLogError(@"打开目录出错");
        return nil;
    }
    return fileArr;

}

/**
 *  深度遍历:根据目录路径获取该目录下所有文件夹和文件
 *
 *  @param directory 指定目录路径
 *
 *  @return
 */
-(NSArray*)getAllFolderAndFileWithTheSpecifiedDirectory:(NSString*)directory{
    NSError *nserr = nil;
    NSFileManager * nsfm = [NSFileManager defaultManager];
    NSArray * fileArr = [nsfm subpathsOfDirectoryAtPath:directory error:&nserr];
    if(nserr){
        DDLogError(@"打开目录出错");
        return nil;
    }
    else{
       return fileArr;
    }
}


0 0
原创粉丝点击