我目前正在尝试寻找一种方法来搜索特定目录中的文件(在此实例中为/ dev / shm,此部件不需要通配符),这些文件适合包含通配符的模式,例如,我有一个目录
stack_review.txt stack_overflow.txt stack_servers.txt
在其中,我想返回所有符合模式堆_ * .txt的结果,我将如何做到这一点?我已经尝试了一些使用readdir的例子,但遗憾的是还没有找到任何适用于此实现的东西,所以我真的很感激我能解决这个问题的任何帮助,谢谢!
答案 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)
元素是否可以嵌套在文件夹中?如果是这样,您的方法必须是递归的。