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

问题描述:

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

+0

C - 不是脚本。但是你可以用你最喜欢的shell脚本语言编写一个脚本来运行一个C程序,以不同的文件作为参数。 –

+1

我不会在C中这样做。这对于shell脚本来说更重要。你在使用什么操作系统? – klutt

+0

什么操作系统?这是一个特定于平台的问题,关于平台特定的API调用来迭代文件夹和文件。没有本地的C函数来做到这一点。 –

如果程序获取文件名在其命令行参数(在argv参数main()),你可以在你运行它使用命令行通配符来处理:

yourprogram /path/to/directory/* 

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

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

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

你可以通过通配符可执行文件。 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