删除与iOS中的模式匹配的文件

有没有办法使用模式删除给定目录中的所有文件(而不是recursion)

举例来说,我有一些名为file1.jpgfile2.jpgfile3.jpg等的文件,我想知道是否有像这个UNIX命令一样使用通配符的方法:

 rm file*.jpg 

尝试这个:

 - (void)removeFiles:(NSRegularExpression*)regex inPath:(NSString*)path { NSDirectoryEnumerator *filesEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:path]; NSString *file; NSError *error; while (file = [filesEnumerator nextObject]) { NSUInteger match = [regex numberOfMatchesInString:file options:0 range:NSMakeRange(0, [file length])]; if (match) { [[NSFileManager defaultManager] removeItemAtPath:[path stringByAppendingPathComponent:file] error:&error]; } } } 

为你举例

file1.jpg,file2.jpg,file3.jpg

你可以使用如下:

 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^file.*\.jpg$" options:NSRegularExpressionCaseInsensitive error:nil]; [self removeFiles:regex inPath:NSHomeDirectory()]; 

Swift版本

 func removeFiles(regEx:NSRegularExpression, path:String) { let filesEnumerator = NSFileManager.defaultManager().enumeratorAtPath(path) while var file:String = filesEnumerator?.nextObject() as? String { let match = regEx.numberOfMatchesInString(file, options: nil, range: NSMakeRange(0, file.length)) if match > 0 { NSFileManager.defaultManager().removeItemAtPath(path.stringByAppendingPathComponent(file), error: nil) } } }