Gesamte Verzeichnisse Kopieren



  • Da ich nichts derartiges in diesem Codestück geschrieben habe...



  • void __fastcall TForm1::Button1Click(TObject *Sender) 
    { 
    if(!CopyFiles("d:\\1", "d:\\temp")) 
    ShowMessage("Ausführung erfolgreich !"); 
    else ShowMessage("Fehler aufgetreten !"); 
    } 
    
    //--------------------------------------------------------------------------- 
    
    int CopyFiles(AnsiString slSourceDir, AnsiString slTargetDir) 
    { 
    SHFILEOPSTRUCT sh; 
    ZeroMemory(&sh, sizeof(sh)); 
    sh.hwnd = NULL; 
    sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_FILESONLY; 
    
    sh.wFunc = FO_COPY; 
    
    slSourceDir+='\0'; 
    
    sh.pFrom = slSourceDir.c_str(); 
    
    slTargetDir+='\0'; 
    
    sh.pTo = slTargetDir.c_str(); 
    
    sh.hNameMappings = NULL; 
    sh.lpszProgressTitle = NULL; 
    return SHFileOperation (&sh); 
    }
    

    Zeile 3: if (!CopyFiles...... Siehst du das nicht so? :xmas1:



  • Funktion Move Files

    Ich kann in dieser Zeile nix von MOVE FILES finden



  • IchDuErSieEs schrieb:

    Ich hab das einfach mal kopiert und bei mir kommt undefinierte Funktion Move Files (bei deinem Beispiel CopyFiles).

    Was in Klammern geschrieben ist musst du auch lesen.^^



  • Ich bin des Lesens mächtig, aber da dort nichts von MoveFiles steht, kann der Fehler nicht davon kommen



  • Ok, wenn du probleme damit hast, beschränken wir uns auf deinen Code. Ich habe deinen Code kopiert und dieser funktioniert bei mir nicht. Der Fehler lautet: Aufruf einer undefinierten Funktion CopyFiles. So zufrieden?



  • Du hast doch hoffentlich die Funktion voher irgendwo deklariert, wie es sich gehört?

    int CopyFiles(AnsiString slSourceDir, AnsiString slTargetDir);
    

    Sollte in der h Datei stehen

    Dacht nicht, dass man das noch erwähnen muss



  • Hab ich alles gemacht...



  • offenbar an der falschen Stelle; offenbar mit dem falschen Funktionsnamen. Der Compiler kann genausoweinig wie ich wissen, dass du die Funktion aufeinmal umbenannt hast.



  • Hallo alle zusammen,

    richtig ist:

    //--------------------------------------------------------------------------- 
    //Erst mal die explizite Definition der Funktion CopyFiles()
    
    int CopyFiles(AnsiString slSourceDir, AnsiString slTargetDir) 
    { 
    SHFILEOPSTRUCT sh; 
    ZeroMemory(&sh, sizeof(sh)); 
    sh.hwnd = NULL; 
    sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_FILESONLY; 
    
    sh.wFunc = FO_COPY; 
    
    slSourceDir+='\0'; 
    
    sh.pFrom = slSourceDir.c_str(); 
    
    slTargetDir+='\0'; 
    
    sh.pTo = slTargetDir.c_str(); 
    
    sh.hNameMappings = NULL; 
    sh.lpszProgressTitle = NULL; 
    return SHFileOperation (&sh); 
    }
    
    //--------------------------------------------------------------------------- 
    //Dann der Aufruf der Funktion
    
    void __fastcall TForm1::Button1Click(TObject *Sender) 
    { 
    if(!CopyFiles("d:\\1", "d:\\temp")) 
    ShowMessage("Ausführung erfolgreich !"); 
    else ShowMessage("Fehler aufgetreten !"); 
    }
    

    Jetzt funktioniert die Code

    Mit freunlichen Grüßen

    Alex


Anmelden zum Antworten