源: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];
}
}
}