Autor Beitrag
subotai
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 17.04.05 09:37 
Hallo!

Ich möchte den kompletten Inhalt eines Verzeichnisses auf einer externen Festplatte speichern. Ich benutzte dazu copyfile. Das klappt soweit ganz gut. Probleme gibts nur, wenn die Zieldatei bereits existiert und z.B. schreibgeschützt ist. In diesem Fall setzte ich das Dateiattribut der Zieldatei auf faArchive (mit FileSetAttr).

Das Problem ist, dass ich etwa 18000 Dateien kopieren muss. Zum Ausprobieren benutzte ich natürlich kleine Verzeichnisse, wichtig ist aber, dass es mit diesem Verzeichnis klappt.
Dementsprechend lange geht der Vorgang. Eine Überprüfung der kopierten Dateien (Binärvergleich dauert nochmal 2 Stunden).

Ausprobieren gestaltet sich also als recht schwierig.

Aber lange Rede kurzer Sinn. Ist diese Methode gut, ist sie sicher, gibt es noch Alternativen, kann man das Überschreiben bereits existierender Dateien auf eine andere Art erzwingen?

Viele Grüße
subotai
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: So 17.04.05 09:40 
Versuch's mal mit Suche im MSDN SHFILEOPERATION (siehe dazu auch www.delphipraxis.net...shfileoperation.html). Soweit ich weiß, stehen da die nötigen Flags zur Verfügung.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 17.04.05 12:28 
user profile iconsubotai hat folgendes geschrieben:
Ich möchte den kompletten Inhalt eines Verzeichnisses auf einer externen Festplatte speichern.

Vielleicht eine etwas blöde Frage, aber: Muss die Lösung denn in Delphi sein? Ist es eine einmalige Aktion, die du durchführen willst?
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: So 17.04.05 13:47 
In dem Fall, den user profile iconDelfiphan anspricht, würde ich dir zu einem simplen xcopy raten.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
subotai Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 18.04.05 17:26 
Hallo!

Nein, es es keine einmalige Aktion. Dass es mit xcopy funktioniert, weiss ich auch, allerdings würde ich das ganze doch gerne in Delphi machen, da es einfach komfortabler ist.

Ich habs leider noch nicht geschafft, etwas auszuprobieren, aber wenn Windows das kann, dann sollte das Delphi doch auch können? Ganz so viel Arbeit ist es in Delphi schließlich auch nicht.

Danke für Eure Antworten!

Gruß
subotai
Constan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 80

Win XP, Suse 10.1
Delphi 7
BeitragVerfasst: Mo 18.04.05 17:35 
mit dem Prog dateien laden aus einem Verzeicchnis mit Loadfromfile und speichern mit savetofile. denke ich aber viel ahnung habe ich von delphi auch noch net.
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: Mo 18.04.05 17:46 
Suche im MSDN SHFILEOPERATION ist genau das, was der Windows-Explorer macht. Somit sicherlich die optimale (und sehr mächtige) Lösung - außerdem gibt's da massig Beispiele im Netz zu. :wink:

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 18.04.05 17:49 
warum versuchst dus nicht einfach mit shellexecute und xcopy? du kannst ja gegebenenfalls den consolenoutput ins nichts oder in ein TMemo oder sowas leiten (siehe dazu Diesen Thread, dort findest du die Funktion GetConsoleOutput...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
subotai Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 25.04.05 23:30 
Hallo!

Wow, schon wieder sieben Tage vergangen. Ich möchte mich trotzdem nocheinmal bei Euch bedanken, vorallem für die Links. Ich habe mich für SHFileOperation entschieden, und bin zufrieden damit.