![]() |
Ordner Kopieren
Hallo,
Im Ornder A ist der Ordner B. Ordner B hat viele unterordner und Dateien, ich möchte jetzt das ordner B (mit allen was drin ist + unterordner) beim klick auf einen Button kopiert wird und zwar in den Ordner A mit der bezeichnung B1, wenn ich nochmal diesen Button drücke dann B2 usw.... Ich weiß nicht wie die Befehle gehen um einen Ordner zu kopieren. Wie Frage ich ab wiviele Bx Ordner es schon gibt? Ist meine Frage versändlich????? Ferby |
Re: Ordner Kopieren
Suche in diesem Forum nach SHFileOperation, CopyFile & MoveFile.
|
Re: Ordner Kopieren
|
Re: Ordner Kopieren
Hallo,
Ich habe jetzt selbst gesucht, nur nicht wirklich eine lösung gefunden, immer nur code den ich überhaupt nicht verstehe. Wäre es möglich einfach mir den code zu schreiben wie ich einen ordner von a nach b kopiere und mir diesen quellcode zu erklären den rest versuche ich dann selbst zu machen................. Ich habe nur gefunden
Delphi-Quellcode:
fos: TSHFileOpStruct;
begin with fos do begin wFunc := FO_COPY; fFlags := FOF_FILESONLY; pFrom := PChar('C:/test/a'); pTo := PChar('C:/test/b') end; aber da tut sich überhaupt nichts.... |
Re: Ordner Kopieren
|
Re: Ordner Kopieren
|
Re: Ordner Kopieren
Hallo,
danke, jetzt bin ich ein wenig weiter, ich schreibe wenn ich wieder ein problem habe. ferby |
Re: Ordner Kopieren
Hallo,
Also jetzt habe ich ein Problemm... irgendwo muss ein Denkfehler sein if ferwende die funktion 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; 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 koopie machen will dann mancht er keinen neuen ordner data2 usw.... |
Re: Ordner Kopieren
Das hatte ich auch mal vor, ich hab mir ne Funktion geschrieben, die die Ordner mit allen Unterordnern erzeugt:
Delphi-Quellcode:
Du musst einfach den Pfad angeben, dann werden die Ordner erzeugt. Das eigentlich kopieren von Dateien, ist dann das kleinere Problem.
function CutPath(S: String): String;
var i, L: Integer; begin Result:= ''; L:= Length(S); if L = 0 then Exit; for i:= L - 1 downto 1 do begin if S[i] = '\' then begin Result:= Copy(S, 1, i - 1); Exit; end; end; end; function CreateFolders(S: String): Boolean; var TempString: String; TempFolder: array of String; i: Integer; begin i:= 0; TempString:= S; Result:= True; if DirectoryExists(S) then Exit; while not DirectoryExists(TempString) do begin if TempString = '' then begin TempFolder:= nil; Result:= False; Exit; end; Inc(i); SetLength(TempFolder, i); TempFolder[i - 1]:= TempString; TempString:= CutPath(TempString); end; while i > 0 do begin CreateDir(TempFolder[i - 1]); Dec(i); end; TempFolder:= nil; end; Gruß DelphiFreund |
Re: Ordner Kopieren
@ferby: ich denke eine while-Schleife ist da nicht angebracht und 2 x inc(i); wohl auch nicht.
Nachtrag: Und bitte immer die [delphi]-Tags verwenden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz