Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ordner Kopieren (https://www.delphipraxis.net/40882-ordner-kopieren.html)

Binärbaum 22. Feb 2005 19:47

Re: Ordner Kopieren
 
Zitat:

Zitat von ferby
Und so ruf ich die funktion auf

Delphi-Quellcode:
  i:=0;
  while fileexists('C:\Programme\ferby\datenbank\kopie\data' + inttostr(i)) do inc(i);
  inc(i);
  copydir('C:\Programme\ferby\datenbank\data','C:\Programme\ferby\datenbank\kopie\data' + inttostr(i))

das erste mal macht er die kopie wenn ich dann aber noch eine kopie machen will dann mancht er keinen neuen ordner data2 usw....

Das wir er auch nie, da FileExists IMHO nur die Existenz von Dateien, nicht die von Ordnern überprüfen kann. Also wird FileExists im obigen Beispiel immer False zurückgeben, auch wenn der Ordner existiert, da es ja keine Datei ist. Demzufolge wird also immer nach "C:\Programme\ferby\datenbank\kopie\data1" kopiert. Zu den Ordnern data2, data3 usw. kommt man nie.

MfG
Binärbaum

//Edit: Tippfehler

Ultimator 22. Feb 2005 20:30

Re: Ordner Kopieren
 
MSDN-Library durchsuchenFolderExists ;-)

DelphiFreund 22. Feb 2005 20:52

Re: Ordner Kopieren
 
oder auch DirectoryExists(Directory: String);

ferby 22. Feb 2005 21:57

Re: Ordner Kopieren
 
Hallo,

jetzt gehts, danke an alle die mir geholfen haben,
hier der quelltext:

Delphi-Quellcode:
function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_COPY;
    fFlags := FOF_FILESONLY;
    pFrom := PChar(fromDir + #0);
    pTo   := PChar(toDir)
  end;
  Result := (0 = ShFileOperation(fos));
end;

procedure TDatenbank.button_sicherheitskopieClick(Sender: TObject);
var
i:integer;
begin
  i:=1;
  while DirectoryExists('C:\Programme\ferby\datenbank\kopie\data' + inttostr(i)) do inc(i);
  copydir('C:\Programme\ferby\datenbank\data','C:\Programme\ferby\datenbank\kopie\data' + inttostr(i))
end;

retnyg 23. Feb 2005 01:04

Re: Ordner Kopieren
 
Zitat:

Zitat von ferby
Delphi-Quellcode:
  while DirectoryExists('C:\Programme\ferby\datenbank\kopie\data' + inttostr(i)) do inc(i);
  copydir('C:\Programme\ferby\datenbank\data','C:\Programme\ferby\datenbank\kopie\data' + inttostr(i))

fehlt da nicht ein begin end ? ;)

Binärbaum 23. Feb 2005 10:09

Re: Ordner Kopieren
 
Zitat:

Zitat von retnyg
Zitat:

Zitat von ferby
Delphi-Quellcode:
  while DirectoryExists('C:\Programme\ferby\datenbank\kopie\data' + inttostr(i)) do inc(i);
  copydir('C:\Programme\ferby\datenbank\data','C:\Programme\ferby\datenbank\kopie\data' + inttostr(i))

fehlt da nicht ein begin end ? ;)

Nein, er will ja nur die Variable i hochzählen, bis das angegebene Verzeichnis nicht existiert, und erst dann soll der Ordner kopiert werden (so hab ich das zumindest verstanden). Es wird also nur einmal kopiert. Falls man mehrere Ordner haben will, muss man den Code halt mehrmals ausführen.

MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz