如何将代码应用于文件夹内的所有文件?
问题描述:
我对编程比较陌生,但创建了一个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
C - 不是脚本。但是你可以用你最喜欢的shell脚本语言编写一个脚本来运行一个C程序,以不同的文件作为参数。 –
我不会在C中这样做。这对于shell脚本来说更重要。你在使用什么操作系统? – klutt
什么操作系统?这是一个特定于平台的问题,关于平台特定的API调用来迭代文件夹和文件。没有本地的C函数来做到这一点。 –