Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kopieren will mal und mal nicht (https://www.delphipraxis.net/120009-kopieren-will-mal-und-mal-nicht.html)

SaFu 4. Sep 2008 11:59


Kopieren will mal und mal nicht
 
Hi was mach ich Falsch beim Kopieren von Dateien mal will es und mal nicht

Sind meine Pfad angaben zulang ??

Delphi-Quellcode:
    sPfadNichtOffen:= FileListBox1.FileName;
    sPfadOffen:= (ServerPfad + sPath_Puplic + ExtractFileName(ShellTreeView1.Path)+'\' + ExtractFileName(FileListBox1.FileName));

    sPfadNichtOffen1:= (ShellTreeView1.SelectedFolder.PathName+'\Bemerkungen\' + ExtractFileName(ChangeFileExt(FileListBox1.FileName, '.txt')));
    sPfadOffen1:= (ServerPfad + sPath_Puplic + ExtractFileName(ShellTreeView1.Path)+'\Bemerkungen\' + ExtractFileName(ChangeFileExt(FileListBox1.FileName, '.txt')));

    sPfadNichtOffen2:= (ShellTreeView1.SelectedFolder.PathName+'\Bemerkungen\Bemer2\' + ExtractFileName(ChangeFileExt(FileListBox1.FileName, '.txt')));
    sPfadOffen2:= (ServerPfad + sPath_Puplic + ExtractFileName(ShellTreeView1.Path)+'\Bemerkungen\Bemer2\' + ExtractFileName(ChangeFileExt(FileListBox1.FileName, '.txt')));
oder ist das Kopieren nicht richtig, aber manchmal geht es ja??
Delphi-Quellcode:
begin
  CopyFile(PChar(sPfadNichtOffen), PChar(sPfadOffen),True);
  CopyFile(PChar(sPfadNichtOffen1), PChar(sPfadOffen1),True);
   if CopyFile(PChar(sPfadNichtOffen2), PChar(sPfadOffen2),True)Then
     MessageDlgPos7('Dateien Kopiert',mtInformation,[mbOk],self);
end;
Gruß Sascha

DeddyH 4. Sep 2008 12:06

Re: Kopieren will mal und mal nicht
 
Der letzte Parameter von CopyFile heißt FailIfExists. Evtl. musst Du den auf false stellen?

itashadow 4. Sep 2008 12:08

Re: Kopieren will mal und mal nicht
 
lass dir mal vor dem kopieren die ordner ausgeben:

Delphi-Quellcode:
begin
  showmessage(sPfadNichtOffen + #13#10 + sPfadOffen);
  showmessage(sPfadNichtOffen1 + #13#10 + sPfadOffen1);
  showmessage(sPfadNichtOffen2 + #13#10 + sPfadOffen2);
  CopyFile(PChar(sPfadNichtOffen), PChar(sPfadOffen),True);
  CopyFile(PChar(sPfadNichtOffen1), PChar(sPfadOffen1),True);
   if CopyFile(PChar(sPfadNichtOffen2), PChar(sPfadOffen2),True)Then
     MessageDlgPos7('Dateien Kopiert',mtInformation,[mbOk],self);
end;
und guck mal ob die dinger überhaupt existieren
und ob zb die \ richtig gesetzt sind oder ob du irgendwo 2 hintereinander hast
das kann schnell passieren wenn man nen pfad aus mehreren quellen zusammenstellt

SaFu 4. Sep 2008 12:15

Re: Kopieren will mal und mal nicht
 
Ja das habe mir auch schon den Pfad anzeigen lassen aber das´stimmt alles.

Wie gesat manchmal ja manchmal nein.

Und bis gestern ist das Programm fast 1/2 jahr gelaufen ohne Probleme

DeddyH 4. Sep 2008 12:17

Re: Kopieren will mal und mal nicht
 
Wie äußert sich "geht nicht" denn?

SaFu 4. Sep 2008 12:19

Re: Kopieren will mal und mal nicht
 
Zitat:

Zitat von DeddyH
Der letzte Parameter von CopyFile heißt FailIfExists. Evtl. musst Du den auf false stellen?

aber ist der Parameter nicht das hier
Delphi-Quellcode:
overwrite
Boolean. Gibt an, ob vorhandene Dateien überschrieben werden sollen. Der Standardwert ist False. Erforderlich.
Die Datei wird einfach nicht in das andere Verzeichnis Kopiert

DeddyH 4. Sep 2008 12:22

Re: Kopieren will mal und mal nicht
 
Hm? Welches CopyFile rufst Du denn da auf? Aufgrund der PChars würde ich auf die Unit Windows schließen, und da ist es eben andersherum. Zur Not geh auf Nummer Sicher und schreib
Delphi-Quellcode:
Windows.CopyFile(...,false)

SaFu 4. Sep 2008 12:32

Re: Kopieren will mal und mal nicht
 
Hat leider auch keinen erfolg gebracht mmhh

Gibt es noch andere Methoden mit denen ich sicher Kopieren kann.

Das ist mir zu unsicher wenn es mal funzt und mal wieder nicht

DeddyH 4. Sep 2008 12:39

Re: Kopieren will mal und mal nicht
 
Was sagt denn GetLastError? Muss ja irgendeine Ursache haben, dass es nicht geht.

SaFu 4. Sep 2008 12:43

Re: Kopieren will mal und mal nicht
 
GetLasterror sagt :" Der Vorgang wurde erfolgreich beendet" ist aber nicht so die Datei wurde nicht Kopiert

DeddyH 4. Sep 2008 12:52

Re: Kopieren will mal und mal nicht
 
Wie sieht der Aufruf denn jetzt aus?

itashadow 4. Sep 2008 12:53

Re: Kopieren will mal und mal nicht
 
oder kann es sein das die dateien irgendwie geöffnet sind?

SaFu 4. Sep 2008 12:54

Re: Kopieren will mal und mal nicht
 
Delphi-Quellcode:

  if (not(FileExists(sPfadOrdnerOeffentlich))) then
   // Falls Plan nicht Veröffentlicht
   if MessageDlgPos7('Wollen Sie die Datei Kopieren',mtInformation,[mbNo,mbYes],self) = mrYes then
    begin
     Label6.Caption:= sPfadNichtOffen2;
     Label22.Caption:= sPfadOffen2;
     Windows.CopyFile(PChar(sPfadNichtOffen), PChar(sPfadOffen),False);
     Windows.CopyFile(PChar(sPfadNichtOffen1), PChar(sPfadOffen1),False);
     ShowMessage(SysErrorMessage(GetLastError));
     if Windows.CopyFile(PChar(sPfadNichtOffen2), PChar(sPfadOffen2),False)then

     begin
      MessageDlgPos7('Datei Kopiert',mtInformation,[mbOk],self);
     end;

DeddyH 4. Sep 2008 12:57

Re: Kopieren will mal und mal nicht
 
Delphi-Quellcode:
if not Windows.CopyFile(PChar(sPfadNichtOffen), PChar(sPfadOffen),False) then
  ShowMessage(SysErrorMessage(GetLastError));
if not Windows.CopyFile(PChar(sPfadNichtOffen1), PChar(sPfadOffen1),False) then
  ShowMessage(SysErrorMessage(GetLastError));

SaFu 4. Sep 2008 12:59

Re: Kopieren will mal und mal nicht
 
Zitat:

Zitat von itashadow
oder kann es sein das die dateien irgendwie geöffnet sind?

Oh da hast du mich auf was gebracht ich habe ja meinen Laden der Dateien geändert

siehe hier im Thread
http://www.delphipraxis.net/internal...522&highlight=

Und ich glaube du hast damit recht wenn ich die datei verschiebe ohne das ich sie vorher geladen habe verschiebt er sie, Wen ich sie vorher ins Grid lade nicht mehr.

Ergo ist Sie durch die Datei noch in Benutzung

Danke ich glaub da hätte ich mich tot gesucht


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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