AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kopieren mehrerer Verzeichnisse mit SHFileOperation
Thema durchsuchen
Ansicht
Themen-Optionen

Kopieren mehrerer Verzeichnisse mit SHFileOperation

Ein Thema von BeBored · begonnen am 20. Jul 2005 · letzter Beitrag vom 20. Jul 2005
Antwort Antwort
Benutzerbild von BeBored
BeBored

Registriert seit: 2. Jun 2004
Ort: Cremlingen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Kopieren mehrerer Verzeichnisse mit SHFileOperation

  Alt 20. Jul 2005, 19:44
Hallo Delphi-Praxis Mitglieder ich treibe mich hier schon eine ganze weile im Forum herum und habe nun ein Problem bei dem ich irgendwie nicht auf die Lösung komme.

Ich bin ziemlicher Delphi-Neuling also nichts großartiges erwarten...

Mein Problem:

Ich schreibe ein Backup Programm (sehr einfach gehalten für einen älteren Herren) bei dem ich mehrere Verzeichnisse in ein Verzeichniss kopieren will. Kein Kompression oder ähnliches nötig.
Ich benutze eine Funktion die ich im Internet gefunden habe

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;
Ich rufe die Funktion so auf:

Delphi-Quellcode:
  if CopyDir(Quelle, Ziel + '\') = True then
  MessageDlg('Daten gesichert!', mtInformation, [mbOK], 0);
Quelle und Ziel sind String Variablen.
Geht aber nur mit einem Verzeichniss und so nützt mir das nicht viel.
Ich habe das Programm so weit das man Verzeichniss auswählen kann, diese in einer Stringlist gespeichert werden und in
einer Datei.

Wie kann ich die einzelnen Verzeichnisse die in der StrinList stehen in einen einzelnen Ordner sichern?
Ist vielleicht garnicht mal so schwer, aber ich komme nicht drauf

Danke schonmal im vorraus

Matthias
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation

  Alt 20. Jul 2005, 19:47
du müsstest das ganze für jeden Eintrag in deiner Stringlist machen.
Dabei musst du aber folgendes bedenken:
angenommen in deiner Stringlist befindet sich
c:\ordner1\test
c:\ordner2\test

und du kopierst das ganze nach
c:\ordner3

dann überschreibt das "Test"-Verzeichnis aus Ordner2 das gesicherte von Ordner1
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von BeBored
BeBored

Registriert seit: 2. Jun 2004
Ort: Cremlingen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation

  Alt 20. Jul 2005, 19:53
Hallo ging ja echt fix

ja das habe ich mir gedacht das ich das für jeden Eintrag machen muss, nur wie da komme ich nicht drauf...

Mit den Ordnern ist kein Problem da die Unterordner immer anders heißen.

Grüsse

Matthias
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation

  Alt 20. Jul 2005, 20:15
hmm, dann verstehe ich das problem nicht ganz, was ist dir bei dem ganzen unklar? Du hast eine Stringlist und weißt das du da alle items durchgehen musst. Die funktion um jeden Ordner einzeln zu kopieren hast du auch.
Bei was genau brauchst du da jetzt noch Hilfe? (ich hoffe das klingt nicht irgendwie böse)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation

  Alt 20. Jul 2005, 20:21
Beim Kopieren von Dateien kannst du mehrere angeben, indem du sie durch #0 trennst. Darum endet der ganze String ja auch mit #0#0, weil das das Abschlusszeichen für die Funktion ist. Ich würde das gleiche mal mit Ordnern probieren.
  Mit Zitat antworten Zitat
Benutzerbild von BeBored
BeBored

Registriert seit: 2. Jun 2004
Ort: Cremlingen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation

  Alt 20. Jul 2005, 20:57
Ich habe es jetzt so gemacht und geht auch:

for index := 0 to Form3.strl_Quellen.Items.Count-1 do CopyDir(Form3.strl_Quellen.Items[index], Ziel); Vielen dank noch einmal für eure schnellen Antworten.

Matthias
Matthias
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:16 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