2017-11-17 1 views
-1

私は比較的新しいプログラミングですが、画像を回転してそれらのコピーを作成するためのcスクリプトを作成しました。しかし、私はそれを多数のファイルに適用したいと思っていたので、特定のフォルダ内のすべての画像にプログラム/機能を適用する方法があるかどうかは疑問でした。ありがとう!フォルダ内のすべてのファイルにコードを適用するにはどうすればよいですか?

+0

C - はスクリプトではありません。しかし、好みのシェルスクリプト言語でスクリプトを書いて、異なるファイルを引数としてCプログラムを実行することができます。 –

+1

私はCでこれをやっていません。これはシェルスクリプトの場合はもっと重要です。あなたはどのOSを使用していますか? – klutt

+0

どのようなOSですか?これは、プラットフォーム固有の質問です。フォルダやファイルを反復処理するためのプラットフォーム固有のAPI呼び出しについてです。これを行うネイティブのC関数はありません。 –

答えて

1

プログラムは(main()argvパラメータ)のコマンドライン引数で処理するために、ファイル名を取得した場合、あなたがそれを実行すると、コマンドラインでワイルドカードを使用することができます。

yourprogram /path/to/directory/* 

プログラムする必要があり、単にargvのすべてのファイル名をループします。

それは一度に一つのファイルを処理できる場合は、シェルのループを使用することができます

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

を実行ファイルにワイルドカードを渡すことができます。シェルは、ワイルドカードを一致するすべてのファイルに展開します。メインプログラムは次のようになります。

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

これは非常に多く使用する予定の場合、これが最適な解決策です。クイックフィックスが必要な場合は、シェルスクリプトを使用する方がよいでしょう。これは、bashで行われる方法です。

for file in /path/* 
do 
    [ -e "$file" ] || continue 
    program "$file" 
done 
関連する問題