From 2ba6639413cb31ea0cd33272efebe074e27b5a8a Mon Sep 17 00:00:00 2001 From: vertexgamer <31879979+vertexgamer@users.noreply.github.com> Date: Tue, 3 May 2022 00:50:59 +0200 Subject: [PATCH] Update Pizzaiolo.cpp --- Pizzaiolo.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Pizzaiolo.cpp b/Pizzaiolo.cpp index a25c03d..baca88d 100644 --- a/Pizzaiolo.cpp +++ b/Pizzaiolo.cpp @@ -22,6 +22,8 @@ int operai; string percorso; int i; int loop = 0; +string cartellaoutput; +int z; int main() { @@ -39,6 +41,8 @@ int main() getline(std::cin, argomenti); cout << "Trascina la cartella con i files (il path non deve avere spazi) / Drag the folder containing the files (the path mustn't have spaces)" << endl; //the user drag the folder which contains the files to be encoded getline(std::cin, cartella); + cout << "Desideri che l'output vada su una cartella specifica? Se no, lascia il campo vuoto" << endl; + getline(std::cin, cartellaoutput); cout << "Inserisci quante istanze saranno attive simultaneamente (USA UN VALORE MAGGIORE DI 0) / Insert the number of instances allowed at the same time (THE VALUE MUST BE GREATER THAN 0)" << endl; cin >> operai; //number of simultaneus instances argomentioriginale = argomenti; @@ -46,7 +50,7 @@ int main() i = eseguibile.find_last_of("\\"); //the executable name is extracted from the path given before nomeeseguibile = eseguibile.substr(i + 1); - for (const auto& entry : fs::directory_iterator(cartella)) { //it gets the path of the files inside the folder + for (const auto& entry : fs::recursive_directory_iterator(cartella)) { //it gets the path of the files inside the folder percorso = entry.path().string(); while (argomenti.find("perin") != string::npos) @@ -54,9 +58,22 @@ int main() percorso = percorso.substr(0, percorso.find(".", 0)); - while (argomenti.find("perout") != string::npos) - argomenti.replace(argomenti.find("perout"), 6, percorso); + if (cartellaoutput.empty()) + { + while (argomenti.find("perout") != string::npos) + argomenti.replace(argomenti.find("perout"), 6, percorso); + } + else + { + z = percorso.find_last_of("\\"); + percorso = percorso.substr(z + 1); + percorso = cartellaoutput + "\\" + percorso; + cout << percorso << endl; + while (argomenti.find("perout") != string::npos) + argomenti.replace(argomenti.find("perout"), 6, percorso); + } + cout << "start " + eseguibile + " " + argomenti << endl; //it cout the result for debugging purposes, in the final version it will start the process system(("start " + eseguibile + " " + argomenti).c_str()); argomenti = argomentioriginale;