Ordner kopieren



  • Ich möchte einen beliebigen Ordner mit der Funktion SHFileOperation kopieren.
    Mein Quellpfad steht in der Varaible 'buffer'. Ich habe imir den Pfad per MessageBox ausgeben lassen und er ist korrekt. Nur die Funktion gibt mir eine Fehlermeldung aus das der Quellpfad nicht gefunden werden kann. Trage ich den Pfad per Hand ein so wie er mir in der MessageBox ausgegeben wurde

    shfs.pFrom  = "C:\\create user";
    

    und rufe die Funktion auf funktioniert alles bestens. Ich habe alles ausprobiert was mir eingefallen ist aber es will nicht klappen. Nun hoff ich das mir hier einer helfen kann.

    Hier der Auszug aus meinem Programm:

    GetDlgItemText(ghDlg, IDC_STATIC_PFAD_L, buffer, sizeof(buffer));
    lvL.getItemText(buffer2);
    strcat(buffer, buffer2);
    
    ZeroMemory(&shfs, sizeof(shfs)); 
    shfs.hwnd   = NULL;
    shfs.wFunc  = FO_COPY;
    shfs.pFrom  = buffer;
    shfs.pTo    = "C:\\Test";
    shfs.fFlags = FOF_SIMPLEPROGRESS ; 
    shfs.lpszProgressTitle = "Fortschritt des Kopiervorgangs"; 			
    SHFileOperation (&shfs);
    

    MfG



  • Ist es vielleucht das:

    Each file name must be terminated by a single NULL character. An additional NULL character must be appended to the end of the final name to indicate the end of pFrom.

    Also müssen am Ende zwei Stringendezeichen stehen.



  • hab ich probiert ... funktioniert auch nicht! wär nett wenn vlt. jmd. n funktionierenden code hätte! habe das echt schon alles prbiert!

    MfG



  • donzero schrieb:

    hab ich probiert ... funktioniert auch nicht!

    Wie hast du es denn probiert? Ist dir klar, dass man ein Stringendezeichen nicht mit strcat anhängen kann?



  • das es mit strcat nicht geht war mir klar aber hab es nochmal ausprobiert und da ist mir aufgefallen das ich einen denkfehler hatte 😉 aber danke für die antwort MfG


Anmelden zum Antworten