Gesamte Verzeichnisse Kopieren



  • Ich schaue immer in die vom C++Builder mitgelieferte *.hlp Datei. Deshalb habe ich keine Link.

    Werde nächstes Mal dann den Link bei MS suchen



  • Christian211 schrieb:

    [...] die vom C++Builder mitgelieferte *.hlp Datei.

    Genau deshalb bedarf es hier auch keiner Vollzitate, ein Hinweis auf den Funktionsnamen sollte ausreichen.... 😉

    Was die MSDN-Links betrifft: wirf doch mal einen Blick auf den entsprechenden CodeTag-Button.



  • Vielen Dank für Ihre Hilfe,

    ich kann mich trotzdem Hinweis auf die Funktion int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp); nicht reinarbeiten. Habe den Link mit AltaVista auf deutsch übersetzt aber wie ich den Kopirvorgang von Verzeichnissen bewerkstelligen kann ist mir nicht eingefallen.

    Kennt jemand einen konkreten Beispiel?

    Mit freundlichen Grüßen

    Alex



  • Hallo

    Hier ist ein komplettes Beispiel.

    bis bald
    akari



  • Hallo alle zusammen,

    ich benutze BCB6 Pro und habe ein Problem mit der Deklaration der Funktion CopyFiles();

    Die Code:

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {

    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);
    }
    if(!CopyFiles("d:\\1", "d:\\temp"))
    ShowMessage("Ausführung erfolgreich !");
    else ShowMessage("Fehler aufgetreten !");
    }

    Kommt die Meldung: Fehler in der Deklarationssyntax

    Villecht muss ich etwas includieren?

    Kan mir jemand helfen?

    Alex



  • Du kannst keine Funktion innerhalb einer anderen einbauen

    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);
    }
    


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



  • 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