Dateiname bei einem Pfad ändern
-
Hallo,
also ich erhalte per Konsolen-Kommande einen Pfad zu einer Datei.
Dabei möchte ich jetzt den Dateinamen ändern.//includes int main(int argc, char *argv[]) { //argv[1]: Pfad der Datei //Der neue Name char name[] = "ein_test"; char *slash, *backslash; char *basename; //Ueberpruefen ob / oder \ das letzte Zeichen ist slash = strrchr(argv[1],'/'); backslash = strrchr(argv[1],'\\'); //basename auf Dateiname (/datei.txt) setzen if(slash == NULL && backslash == NULL) basename = NULL; else if((backslash - slash) > 0) basename = backslash; else basename = slash; char *new_path; new_path = (char *)malloc(strlen(argv[1])-strlen(basename) + strlen(name) + 2); if(basename != NULL) { strncpy(new_path,argv[1],strlen(argv[1])-strlen(basename)); strcat(new_path,"\\"); strcat(new_path,name); } else { new_path = name; } printf("%s",new_patch); return 0; }
Ich wollte mal fragen, ob die malloc-Anweisung so richtig ist.
Denn irgendwie wird nur manchmal der Pfad ausgegeben, manchmal endet das Programm einfach so.MFG