pfad problem

Nabi

Erfahrenes Mitglied
Code:
GetModuleFileName(NULL,test,50);  // pfad holen ,in test speichern,test ist ein char[100]

int b=strlen(test);                             // länge der pfad/adresse finden

for(int i=0; i<b ; i+=1){                  
    if (test[i]==92){ test[i]=47;};    // Jede "\" zeichen wird mit "/" umgewandelt
};

strcat(test,"/test/source1.txt");  // noch ein Ordner namens "test" und source1.txt hinzufügen

TextOut(hDC,90,40,test,strlen(test)); // Man kann Sehen dass diese komplette adresse ist

fp=fopen(test,"w"); // warum akzeptiert fopen diese zeichenkette als pfad Nicht?

    fclose(fp);
 
Weil Du alle '\' in '/' umgewandelt hast und solche Pfade werden unter Windows nicht erkannt.
 
Doch , das problem habe ich gelöst , der grund war:
1. 50 war zu wenig als size
2. /test/source1.txt Muss test/source1.txt ohne "/" sein weil die GetModuleFileName
adresse enthält bereit ein \ am ende .

das dokument source1 ist schon in der richtige Ordner erzeugt.
 
Äh, bei GetModuleFilename ist bereits ein Dateiname dran, du fügst da an einen kompletten Pfad mit Dateinamen noch einen Ordner mit Dateinamen dran?

Du müsstest eigentlich bei GetModuleFilename A) einen Puffer mit MAX_PATH als Länge angeben (damit auch wirklich alle möglichen Pfade reinpassen) und danach von hinten den letzten Backslash suchen, damit du wirklich nur den Pfad bekommst (ohne den Dateinamen deiner Exe-Datei).
 
Zurück