用ZipArchive压缩文件夹下所有子文件

阅读更多

区别在于不是调用contentsOfDirectoryAtPath方法,而是调用subpathsAtPath方法,这会列出sourcePath下的所有文件和子目录,然后在下面的循环里,将文件写入压缩文件,不处理文件夹。注意newname要直接用subPath,这样会自动在压缩文件中保留子目录下的文件完整路径

NSArray *subPaths = [fileManager subpathsAtPath:sourcePath];// 关键是subpathsAtPath方法 
for(NSString *subPath in subPaths){  
    NSString *fullPath = [sourcePath stringByAppendingPathComponent:subPath];  
    BOOL isDir;  
    if([fileManager fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir)// 只处理文件  
    {  
        [zipArchive addFileToZip:fullPath newname:subPath];  
    }  
}

 

你可能感兴趣的:(Objective-C)