Gesamte Verzeichnisse Kopieren
-
-
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