Unix有一个可以为您执行文件全局操作的库。函数和类型在称为的标头中声明glob.h
,因此您将需要#include
它。如果打开终端,请输入以下内容以打开glob的手册页man 3 glob
您将获得使用这些功能所需的所有信息。
下面是一个示例,说明如何使用匹配模式填充文件的数组。使用该glob
功能时,需要记住一些注意事项。
- 默认情况下,该
glob
函数在当前工作目录中查找文件。为了搜索另一个目录,您需要像在示例中所做的那样在目录名称前添加通配模式,以获取所有文件。/bin
。
- 完成结构后,您负责清理
glob
通过调用分配的内存globfree
。
在我的示例中,我使用默认选项,并且没有错误回调。手册页涵盖了所有选项,以防您要使用其中的某些内容。如果您要使用上面的代码,建议您将其作为类别添加到NSArray
或类似的内容中。
NSMutableArray* files = [NSMutableArray array];
glob_t gt;
char* pattern = "/bin/*";
if (glob(pattern, 0, NULL, >) == 0) {
int i;
for (i=0; i<gt.gl_matchc; i++) {
[files addObject: [NSString stringWithCString: gt.gl_pathv[i]]];
}
}
globfree(>);
return [NSArray arrayWithArray: files];
编辑:我在github上创建了一个要点,该要点包含上述代码,称为NSArray + Globbing。