gpt4 book ai didi

iphone - 高效删除名称包含子字符串的多个文件

转载 作者:行者123 更新时间:2023-11-29 04:38:15 25 4
gpt4 key购买 nike

我想删除多个包含子字符串的文件。举例来说,我想删除所有包含子字符串 my 的文件。假设我的目录包含4个文件:photo.jpgmyPhoto.jpgbeachMyPhoto.jpganyPhoto.jpg>,由于搜索词是 my,因此我有兴趣删除的文件是 myPhoto.jpgbeachMyPhoto.jpg (不区分大小写) .

我建议的解决方案(我知道该怎么做)是使用 NSFileManager 类,并使用函数 contentsOfDirectoryAtPath:error: 读取所有目录内容,并且然后通过循环搜索命中。如果发现命中,我会删除该文件。

在我提出的解决方案中,我不喜欢的是它效率不高,特别是当目录包含太多文件并且命中次数很少时。有没有更有效的方法来做到这一点?

最佳答案

如果你不想将大数组加载到内存中,可以尝试 -[NSFileManager enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:] .由于您只需要目录的直接内容,因此您可以调用 -[NSDirectoryEnumerator skipDescendants]对于它返回的每个目录。

如果您关心的是迭代目录中的所有项目,测试您的匹配模式,那么这是不可避免的。您希望使用的任何技术都必须以某种方式迭代目录中的所有项目并测试匹配。唯一的问题是该迭代是否会暴露给您。在 cocoa 中,确实如此。您可以下拉至 glob() 如果您想要一个没有的替代方案,请使用它。

关于iphone - 高效删除名称包含子字符串的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com