AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem bei Datei kopieren. SHFileOperation, CopyFile,...
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei Datei kopieren. SHFileOperation, CopyFile,...

Ein Thema von manuel · begonnen am 4. Mär 2005 · letzter Beitrag vom 7. Mär 2005
Antwort Antwort
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#1

Problem bei Datei kopieren. SHFileOperation, CopyFile,...

  Alt 4. Mär 2005, 14:46
Hi Leute,

ich versuche schon seit einer Weile ein Programm zu schreiben, welches ein Backup von Benutzerdaten erstellt.

Eigentlich ein recht triviales Problem.
Nutze ich die SHFileOperation-Funktion bzw die doFileWork-Procedure von Sakura, FileStreams, oder die Funktion CopyFile werden manche Dateien nicht kopiert, weil sie nicht geöffnet werden können.

Hier der Quelltext für dir Streams:

Delphi-Quellcode:

function ThreadCopy.CopyFile(Source, Dest: String): Boolean;
var F, T: TFileStream;
begin
  try
    Result := true;
    try
      F := TFileStream.Create(Source, fmOpenRead);
      T := TFileStream.Create(Dest, fmOpenWrite);
      T.CopyFrom(F, 0);
    finally
      F.Destroy;
      T.Destroy;
    end;
  except
    Result := false;
  end;
end;
Werden Die Dateien mittels Windows von Hand kopiert, funktioniert das Kopieren fehlerlos.

Alle zu kopierenden Dateien sind geschlossen !
kann man das irgendwie einrichtren dass alle Dateien kopiert werden?

Gruß

Manuel
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#2

Re: Problem bei Datei kopieren. SHFileOperation, CopyFile,..

  Alt 7. Mär 2005, 10:43
Hallo...

hat denn keiner eine Idee?

Gruß

Manuel
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Problem bei Datei kopieren. SHFileOperation, CopyFile,..

  Alt 7. Mär 2005, 11:04
Beim Kopieren von Dateien muss man auf die Share-Attribute achten.
Du behauptest zwar, die Dateien wären alle geschlossen, aber das ist noch kein Beweis.
Beim Kopieren solltest du eventuelle Fehler mit protokollieren!!

Deshalb:
Delphi-Quellcode:
ThreadCopy = class(TThread)
private
   ...
   FErrors : string; // speichert die Kopierfehler
public
   ...
   property Errors : string read FErrors;
end;

function ThreadCopy.CopyFile(const Source, Dest: String): Boolean;
var F, T: TFileStream;
begin
  Result := false;
  try
    try
      F := TFileStream.Create(Source, fmOpenRead and fmShareDenyNone);
      T := TFileStream.Create(Dest, fmCreate);
      T.CopyFrom(F, 0);
      Result := true;
    finally
      F.Destroy;
      T.Destroy;
    end;
  except
    on E:Exception do
    begin
       // wir merken uns die Fehlermeldung aus der Exception
       // und die Dateinamen, die kopiert werden sollten !!!
       FErrors := FErrors+Source+'->'+Dest+' : '+E.Message+#13#10;
    end;
  end;
end;
Andreas
  Mit Zitat antworten Zitat
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#4

Re: Problem bei Datei kopieren. SHFileOperation, CopyFile,..

  Alt 7. Mär 2005, 11:14
Hab den Fehler gefunden...
Hab mich bei der Zusammensetzung des Pfades vertippt
Muss passiert sein, als ich auf Threads umgestellt habe...

Trotzdem Danke an Shmia.
Die Prozedur werde ich entsprechend umbauen...

Manuel
sometimes I feel diagonally parked in a parallel universe
  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 20:30 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