- 删除文件夹、删除所有子文件夹和文件的最佳方法是什么?
- 删除具有特定扩展名的文件的最佳方法是什么?例如,如果我只想删除带有“.txt”扩展名的文件?
可可或碳。
可可或碳。
要删除目录树(或文件),请使用-[NSFileManager removeItemAtPath:error:]
. 这会直接删除文件(并将删除所有文件);如果您想将项目移动到废纸篓,请使用NSWorkspaceRecycleOperation
.
至于仅删除具有特定扩展名的文件:获取每个路径名pathExtension
并将caseInsensitiveCompare:
其与您要查找的文件进行比较,然后如果该文件在您的命中列表中,则将其删除。
如果您想将两者结合起来(即,仅删除目录树中具有给定扩展名的文件),您需要从 NSFileManager 获取目录枚举器并自己遍历目录树,逐个删除文件。
删除具有特定扩展名的文件..
至少有一种方法.. 这个例子只是在应用程序文档目录中查找任何扩展名为 jpg 的文件并删除它们..
NSFileManager *fManager = [NSFileManager defaultManager];
NSString *dir = [self applicationDocumentsDirectory];
NSError *error;
NSArray *files = [fManager contentsOfDirectoryAtPath:dir error:&error];
for (NSString *file in files) {
if ([[[file pathExtension] lowercaseString] isEqualToString: @"jpg"])
{
[fManager removeItemAtPath: [dirstringByAppendingPathComponent:file] error:&error];
NSLog(@"removed: %@",file);
}
if (error) {
//deal with it
}
}
是的,一定要使用回收站,除非它们当然是用户不应该看到/知道的文件。