Rijesenje za prvi zadatak:
Samo jos da napomenem da kada budete koristili komande cd i rd nazive foldera pisite bez backslash simbola na kraju npr:
Code:
Pogresno: cd folder_1\
Tacno: cd folder_1
Pogresno: rd C:\put\do\foldera\
Tacno: rd C:\put\do\foldera
Osim ako kucate root neke particije npr C:\ D:\, onda morate staviti backslash na kraju.
Code:
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <sys/stat.h>
using namespace std;
void pomoc();
vector<string> razdvoji(string cmd);
void proc(string cmd, string *w_dir);
int main(int argc, char* argv[]){
string izbor;
string radniDir("C:\\");
cout << "Zadatak1 - www.tutorijali.net\n";
cout << "Autor: schmrz\n";
cout << "Ukucajte ""pomoc"" (bez navodnika) za listu naredbi\n";
while (izbor != "exit"){
cout << radniDir << "::";
getline(cin, izbor);
proc(izbor, &radniDir);
}
return 0;
}
void pomoc(){
cout << "dir\t\t - izlistaj fajlove i foldere\n";
cout << "rd [putanja]\t - promijeni radni direktorij (puna putanja)\n";
cout << "cd [folder]\t - promijeni radni direktorij\n";
cout << "rm [fajl]\t - izbrisi fajl u radnom direktoriju\n";
cout << "rn [naziv_stari] [naziv_novi]t - preimenuj fajl u radnom direktoriju\n";
cout << "pomoc\t\t - ispisi ovaj tekst\n";
}
vector<string> razdvoji(string cmd){
vector<string> rez;
stringstream ss(cmd);
string temp;
while (ss >> temp){
rez.push_back(temp);
}
return rez;
}
void proc(string cmd, string *w_dir){
vector<string> komanda;
string komanda_m;
struct stat st;
if(cmd != "exit"){
komanda = razdvoji(cmd);
if(komanda.size() >= 1){
if(komanda[0] == "rm"){
cmd = "del " + *w_dir + komanda[1];
system(cmd.c_str());
}
else if(komanda[0] == "rn"){
if(komanda.size() >= 2){
cmd = "rename " + *w_dir + komanda[1] + " " + komanda[2];
cout << cmd << endl;
system(cmd.c_str());
}
}
else if(komanda[0] == "rd"){
if (stat(komanda[1].c_str(), &st) == 0){
if(komanda[1].substr(komanda[1].size() - 1) == "\\"){
*w_dir = komanda[1];
}
else {
*w_dir = komanda[1] + "\\";
}
} else {
cout << komanda[1] << " ne postoji!\n";
}
}
else if(komanda[0] == "cd"){
komanda_m = *w_dir + komanda[1];
if (stat(komanda_m.c_str(), &st) == 0){
*w_dir = *w_dir + komanda[1] + "\\";
} else {
cout << komanda_m << " ne postoji!\n";
}
}
else if(komanda[0] == "dir"){
komanda_m = "dir " + *w_dir;
system(komanda_m.c_str());
}
else if(komanda[0] == "pomoc"){
pomoc();
}
else
{
cout << "Naredba nepoznata!\n";
}
} else {
cout << "Netacno formatirana naredba!\n";
}
}
}