Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sichers Dateikopieren (https://www.delphipraxis.net/150386-sichers-dateikopieren.html)

Ruewue 15. Apr 2010 07:45


Sichers Dateikopieren
 
Sorry schon wieder ich.

Ich habe mal wieder ein etwas andrese Problem. Mein Programm läuft Nachts via Sheduler um Dateien von einem FTP Server runter zuladen. Es ist jetzt aber schon ein paar Mal vorgekommen, dass eine Datei unvollständig geladen wurde. Dass heißt, sie war auf dem Server noch am hochladen als der Download loslief. Wie kann ich nun feststellen, ob eine Datei noch hochgeldaen wird bevor ich sie dann wieder runter lade? Ich würde dann per Timer diese Abfrage sollange laufen lassen, bis die Datei vollständig ist und sie erst dann runterladen.

Es ist besonders ärgerlich, da nach der Bearbeitungen alle Dateien auf dem Server gelöscht werden. Heißt, die Datei muss erst wieder neu erstellt werden. Um sie erneut zu holen.

Danke schon mal im Voraus!

Bernhard Geyer 15. Apr 2010 08:18

Re: Sichers Dateikopieren
 
Lege eine weitere kleine Statusdatei die Informiert ob die Datei "frei" ist.
Oder check im Abstand von ein paar Sekunden ob sich der Dateistempel der Datei geändert hat.

SirThornberry 15. Apr 2010 08:19

Re: Sichers Dateikopieren
 
Es gibt keinen sicheren Weg dies festzustellen. Ein unsicherer Weg der mir spontan einfällt ist das prüfen der Dateigröße (ob diese sich innerhalb einer Toleranzzeit ändert).

Ruewue 15. Apr 2010 09:39

Re: Sichers Dateikopieren
 
Danke!

Das war auch das Einzigste auf das ich gekommen bin. Ist nicht elegant, scheint mir aber doch die funktionellste Lösung zu sein.

Danke noch mal!

Bernhard Geyer 15. Apr 2010 09:48

Re: Sichers Dateikopieren
 
"Elegand" wäre evtl. wenn der ersteller der Datei diese so erzeugt (Exklusiver Zugriff) das der FTP-Server sie nicht ausliefern kann. Dann würdest du solange einen Fehler bekommen bis sie wieder vom FTP-Server zugreifbar ist.

himitsu 15. Apr 2010 10:04

Re: Sichers Dateikopieren
 
Die Datei unter anderem Namen hochladen
(z.B. mit einem Präfix, welches besagt "ich werde noch hochgeladen")

und wenn fertig, dann wird die Datei einfach umbenannt.


Alle Dateien, mit soeinem Präfix, werden dann einfach beim Download erstmal ignoriert.

Ruewue 22. Apr 2010 12:38

Re: Sichers Dateikopieren
 
Danke noch mal für die Antworten. Aber ich habe keinen Einfluß auf das Hochladen der Dateien. Ich muss sie nur abholen. Das Hochladen erledigt userer Kunde. Die Dateien kommen daher auch nicht immer zur selben Zeit. Somit auch das Problem.


D A N K E !

himitsu 22. Apr 2010 12:54

Re: Sichers Dateikopieren
 
Mußt du die Datei sofort löschen?

Wenn nicht, dann lade sie runter, wenn sie entdeckt wird und warte dann mit dem Löäschen noch 'nen Stündchen.

alle 10 Minuten schaust du dann auf die Dateigröße
- wenn sich was ändern, dann die neuen Daten runterladen und an die schon existierenden Daten anhängen
(spart Trafic, wenn man nicht alles nochmal komplett läd)
- wenn sich in den letzen 3 oder 6 Prüfungen nichts geändert hat, dann lösch die Datei auf dem Server
und gib die Datei auf deinem PC zur weitern Verarbeitung frei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz