如何使用通配符搜索目录中的文件

时间:2012-05-21 16:41:04

标签: c file-io

我目前正在尝试寻找一种方法来搜索特定目录中的文件(在此实例中为/ dev / shm,此部件不需要通配符),这些文件适合包含通配符的模式,例如,我有一个目录

stack_review.txt stack_overflow.txt stack_servers.txt

在其中,我想返回所有符合模式堆_ * .txt的结果,我将如何做到这一点?我已经尝试了一些使用readdir的例子,但遗憾的是还没有找到任何适用于此实现的东西,所以我真的很感激我能解决这个问题的任何帮助,谢谢!

2 个答案:

答案 0 :(得分:3)

您正在寻找glob()。来自http://linux.die.net/man/3/glob

使用的一个示例是以下代码,它模拟了键入ls -l *.c ../*.c 在shell中:

glob_t globbuf;

globbuf.gl_offs = 2;
glob("*.c", GLOB_DOOFFS, NULL, &globbuf);
glob("../*.c", GLOB_DOOFFS | GLOB_APPEND, NULL, &globbuf);
globbuf.gl_pathv[0] = "ls";
globbuf.gl_pathv[1] = "-l";
execvp("ls", &globbuf.gl_pathv[0]);

答案 1 :(得分:0)

元素是否可以嵌套在文件夹中?如果是这样,您的方法必须是递归的。

相关问题