iOS 刪除資料夾下所有檔案
阿新 • • 發佈:2019-02-19
源: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]; } } }