*。*在C中的argv [1]中

时间:2017-10-18 09:40:48

标签: c windows filesystems wildcard filenames

背景:某些Windows命令行程序允许在第一个参数中使用*.*

myprogram *.*

并将自动循环目录的所有文件。

其他一些则没有,因此需要批量循环:

for %%c in ("*.*") do myprogram "%%c"

问题:是否有标准方式(在C语言中定义或由OS提供?)允许参数中的*.**.txt,以便它自动执行处理在相关文件上?

int main(int argc, char *argv[])
{
    FILE *kf;

    "for fname in argv[1]"    // pseudo code here meaning: 
                              // let's loop on all files described by the first argument
    {
        kf = fopen(fname, "rb");
        ...
    }
}

我想检查一下这个问题的解决方案是否存在,然后自行滚动(重新发明通配符扩展轮,使用FindFirstFile等)。

1 个答案:

答案 0 :(得分:0)

不,没有标准的方法可以做到这一点。有些东西必须在main函数中处理''。但是,可能有一些库在主C库体外部派生,它们正在做你需要做的事情。此外,您可以编写批处理文件,该文件将遍历文件集并按Windows Batch File Looping Through Directories to Process Files?

中所述调用C编写的应用程序