AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner Kopieren

Ein Thema von ferby · begonnen am 22. Feb 2005 · letzter Beitrag vom 23. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Ordner Kopieren

  Alt 22. Feb 2005, 18:10
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
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#2

Re: Ordner Kopieren

  Alt 22. Feb 2005, 18:15
Suche in diesem Forum nach SHFileOperation, CopyFile & MoveFile.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Ordner Kopieren

  Alt 22. Feb 2005, 18:15
Einfach suchen Hier im Forum suchenverzeichnis kopieren. Oder in der Code-Library gucken.
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#4

Re: Ordner Kopieren

  Alt 22. Feb 2005, 18:44
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....
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Ordner Kopieren

  Alt 22. Feb 2005, 18:46
Dann benutze das hier.

Nachtrag: Wie rufst du denn obigen Code auf?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Ordner Kopieren

  Alt 22. Feb 2005, 18:51
Falls du Fragen zu dem Konstrukt da hast:
http://msdn.microsoft.com/library/de...leopstruct.asp
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#7

Re: Ordner Kopieren

  Alt 22. Feb 2005, 19:03
Hallo,

danke, jetzt bin ich ein wenig weiter, ich schreibe wenn ich wieder ein problem habe.



ferby
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#8

Re: Ordner Kopieren

  Alt 22. Feb 2005, 19:28
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....
  Mit Zitat antworten Zitat
DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Ordner Kopieren

  Alt 22. Feb 2005, 19:36
Das hatte ich auch mal vor, ich hab mir ne Funktion geschrieben, die die Ordner mit allen Unterordnern erzeugt:
Delphi-Quellcode:
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;
Du musst einfach den Pfad angeben, dann werden die Ordner erzeugt. Das eigentlich kopieren von Dateien, ist dann das kleinere Problem.

Gruß DelphiFreund
Sandro
Irren ist menschlich...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Ordner Kopieren

  Alt 22. Feb 2005, 19:40
@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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.
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