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