Hmm, kilkanaście, może kilkadziesiąt minut, aby pokapować się, że otwartego pliku usunąć się nie da;) Nooo nieładnie Piątkosia. Idlecode: gdzie tu niby miałby być haczyk?
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
using namespace std;
int main(int argc, char* argv[]){
system("chcp 1250>NUL");
if ((argc <2) || (argc > 3)){
cerr<<"\nBłąd wywołania. Spróbuj "<<argv[0]<<" --help";
system("chcp 852>NUL");
exit(1); //Błąd wywołania
}
if (argc ==2){
if ((string)argv[1]=="--help"){
cout<<"Program zmienia nazwę pliku na innš.\n";
cout<<"Użycie: "<<argv[0]<<" <stara_nazwa> <nowa_nazwa>\n";
cout<<"Wywietlanie działa poprawnie przy czcionce Lucida console. \n Zmień w razie potrzeby";
system("chcp 852>NUL");
exit(0); //poprawne zakończenie funkcji przy helpie
}
cerr<<"\nBłąd wywołania. Spróbuj "<<argv[0]<<" --help";
system("chcp 852>NUL");
exit(1); //błšd wywołania
}
//Spróbujemy otworzyć pliki do odczytu, by upewnić się że możemy na nich działać
fstream testowy, testowy2;
testowy.open(argv[1], ios::in|ios::binary);
if (!testowy.good()){
cerr<<"\nNie odnaleziono pliku lub brak dostępu do niego.";
system("chcp 852>NULL");
exit(2); // Nie można pracować z plikiem
}
testowy.close();
testowy2.open(argv[2], ios::in|ios::binary);
if (testowy2){
char a;
cout<<"\nPlik docelowy istnieje. Nadpisać? T/N: ";
cin>>a;
while(1){
if (toupper(a) == 'T'){
testowy2.close();
remove(argv[2]);
break;
}
else if (toupper(a) == 'N'){
cerr<<"\nPlik o podanej nazwie już istnieje. Kończę.\n";
testowy2.close();
system("chcp 852>NUL");
exit(3);
}
else {
cout<<"\nNadpisać? T/N: ";
cin>>a;
continue;
}
} //od while 1
}
//Mamy obsłużone podstawowe błędy, przejdziemy do sedna;
rename(argv[1], argv[2]);
} //od main
Programik nic poza zmianą nazwy nie robi. Ale działa, żeby nie było:)
One Comment
😀 genialne
Comments are closed.