Verzeichnisse kopieren
Re: Verzeichnisse kopieren
du solltest auch den richtigen Button für Code anklicken...
Gruß, Michael
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Verzeichnisse kopieren
Wenn du statt <quote> <code=laz> schreibst, dann werden die Leerzeichen angezeigt und der Quelltext auch farblich hervorgehobenAliobaba hat geschrieben: Sa 13. Mär 2021, 14:06 (Schade, dass die Leerzeichen zum Zeilenbeginn nicht angezeigt werden; das macht es etwas unübersichtlicher)
Zuletzt geändert von fliegermichl am Sa 13. Mär 2021, 14:42, insgesamt 1-mal geändert.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Verzeichnisse kopieren
six1 war schneller 

Re: Verzeichnisse kopieren
... und mit externen Programmaufrufen habe ich es auch schon mal versucht (gelöst?)
Code: Alles auswählen
Function Verzeichnis_kopieren ( A_Verzeichnis , A_Zielverzeichnis , A_Meldung_1 , A_Meldung_2 : string ) : Integer;
var
BoxStyle , Reply : integer;
AProcess: TProcess;
begin
{$IFDEF WINDOWS}
if not DirectoryExists (A_Verzeichnis) then
begin
Showmessage('Dieses Quellverzeichnis gibt es nicht!');
exit;
end;
{$ENDIF}
if Fileexists (A_Zielverzeichnis) then
begin
with Application do
begin
BoxStyle := MB_ICONQUESTION + MB_YESNO;
Reply := MessageBox(PChar('Dieses Zielverzeichnis gibt es bereits!'+LineEnding+'Vorhandene Daten werden ersetzt!'+ LineEnding + LineEnding +'OK?' ), 'Sicherheitsabfrage', BoxStyle);
if Reply = IDYES then
begin
end
else
begin
exit;
end;
end;
end;
if A_Meldung_1 <> '' then Showmessage( A_Meldung_1 );
Screen.Cursor := crHourGlass;
AProcess := TProcess.Create(nil);
{$IFDEF WINDOWS}
AProcess.CommandLine := 'robocopy "' + A_Verzeichnis + '" "' + A_Zielverzeichnis + '"';
{$ENDIF}
{$IFDEF LINUX}
AProcess.CommandLine := 'cp -rf "' + A_Verzeichnis + '" "' + A_Zielverzeichnis + '"'; // nicht mit RoboCopy, also kein /MIR anfügen
{$ENDIF}
AProcess.CommandLine := StringReplace ( AProcess.CommandLine , '/' , A_Slash , [rfReplaceAll] );
AProcess.CommandLine := StringReplace ( AProcess.CommandLine , '\' , A_Slash , [rfReplaceAll] );
{$IFDEF WINDOWS}
AProcess.CommandLine := AProcess.CommandLine + ' /MIR'; // jetzt erst!! sonst wird der Slash geändert: muss immer so sein "/MIR"
{$ENDIF}
AProcess.Options := AProcess.Options + [poWaitOnExit]; //, poUsePipes]; //+ [poWaitOnExit]; //, poUsePipes];
AProcess.Execute;
AProcess.Free;
Screen.Cursor := crDefault;
if A_Meldung_2 <> '' then Showmessage( A_Meldung_2 );
end;
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
- af0815
- Lazarusforum e. V.
- Beiträge: 6782
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Verzeichnisse kopieren
Als Code formatieren hilft. Du hast es als Quote formatiert.
Edit ich war viel zu langsam
Edit ich war viel zu langsam
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).