如何将代码应用于文件夹中的所有文件?

时间:2017-11-17 22:07:54

标签: c image directory

我对编程比较陌生,但创建了一个c脚本来旋转图像并创建它们的副本。但是,我希望将它应用于大量文件,所以我想知道是否有办法将程序/功能应用于特定文件夹中的所有图像。谢谢!

2 个答案:

答案 0 :(得分:1)

如果程序在其命令行参数中获取要处理的文件名(argv参数为main()),则在运行时可以在命令行中使用通配符:

yourprogram /path/to/directory/*

程序应该简单地遍历argv中的所有文件名。

如果它一次只能处理一个文件,你可以使用shell循环:

for file in /path/to/directory/*
do
    yourprogram "$file"
done

答案 1 :(得分:0)

您可以将通配符传递给可执行文件。 shell会将通配符扩展为它匹配的所有文件。您的主程序可能如下所示:

int main(argc, char ** argv)
{
    for(int arg=1; arg<argc; arg++)
        doStuffToFile(argv[arg]);
}

如果你计划使用这个,那么这是最好的解决方案。如果您只需要快速修复,那么使用shell脚本会更好。这就是在bash中完成的方式:

for file in /path/*
do
    [ -e "$file" ] || continue
    program "$file"
done