2017-11-17 142 views
-1

我對編程比較陌生,但創建了一個c腳本來旋轉圖像並創建它們的副本。但是,我希望將它應用於大量文件,所以我想知道是否有辦法將程序/函數應用於特定文件夾中的所有圖像。謝謝!如何將代碼應用於文件夾內的所有文件?

+0

C - 不是腳本。但是你可以用你最喜歡的shell腳本語言編寫一個腳本來運行一個C程序,以不同的文件作爲參數。 –

+1

我不會在C中這樣做。這對於shell腳本來說更重要。你在使用什麼操作系統? – klutt

+0

什麼操作系統?這是一個特定於平臺的問題,關於平臺特定的API調用來迭代文件夾和文件。沒有本地的C函數來做到這一點。 –

回答

1

如果程序獲取文件名在其命令行參數(在argv參數main()),你可以在你運行它使用命令行通配符來處理:

yourprogram /path/to/directory/* 

程序應該簡單地循環遍歷argv中的所有文件名。

如果它只能一次處理一個文件,你可以使用一個shell循環:

for file in /path/to/directory/* 
do 
    yourprogram "$file" 
done 
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 
相關問題