【问题标题】:How do I apply code to all files within a folder?如何将代码应用于文件夹中的所有文件?
【发布时间】:2017-11-17 22:07:54
【问题描述】:

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

【问题讨论】:

  • C - 不是脚本。但是你可以用你最喜欢的 shell 脚本语言编写一个脚本来运行一个将不同文件作为参数的 C 程序。
  • 我不会在 C 中这样做。这更多地是 shell 脚本的问题。您使用的是什么操作系统?
  • 适用于什么操作系统?这是一个特定于平台的问题,关于用于迭代文件夹和文件的特定于平台的 API 调用。没有本地 C 函数可以做到这一点。

标签: c image directory


【解决方案1】:

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

yourprogram /path/to/directory/*

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

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

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

【讨论】:

    【解决方案2】:

    您可以将通配符传递给可执行文件。 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      相关资源
      最近更新 更多