iOS 删除文件夹下所有文件

来源:互联网 发布:公司网络被限制怎么办 编辑:程序博客网 时间:2024/05/18 03:47

源:http://www.cnblogs.com/easonoutlook/archive/2012/09/09/2677893.html

有时候需要在iOS系统里面,删除指定文件夹的内容,文件夹里面可能是文件,也可能包含有文件夹。

删除指定类型的文件。方法如下:

NSString *extension = @"m4r";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
 
NSArray *contents = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:NULL]; 
NSEnumerator *e = [contents objectEnumerator];
NSString *filename;
while ((filename = [e nextObject])) {
 
    if ([[filename pathExtension] isEqualToString:extension]) {
 
        [fileManager removeItemAtPath:[documentsDirectory stringByAppendingPathComponent:filename] error:NULL];
    }
}

 

删除sandbox 里面的Documents目录里面的文件夹

NSArray *contents,里面对应的是文件夹里面的内容,可以使用NSLog()打印输出

然后通过NSEnumerator枚举出来。判断扩展名是否为m4r,如果是,则删除。



用上边的办法封装了一个方法,传入path和扩展名前缀:

-(void)removeContentsOfDirectory:(NSString*)directory withExtension:(NSString*)extension{    NSFileManager *fileManager = [NSFileManager defaultManager];    NSArray *contents = [fileManager contentsOfDirectoryAtPath:directory error:NULL];    NSEnumerator *e = [contents objectEnumerator];    NSString *filename;    while ((filename = [e nextObject])) {        if (extension != nil) {            if ([[filename pathExtension] hasPrefix:extension]) {                                [fileManager removeItemAtPath:[directory stringByAppendingPathComponent:filename] error:NULL];            }        }else{            [fileManager removeItemAtPath:[directory stringByAppendingPathComponent:filename] error:NULL];        }    }}




0 0
原创粉丝点击