Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdFTP Upload: Datei überschreiben (https://www.delphipraxis.net/111863-idftp-upload-datei-ueberschreiben.html)

delphin06 10. Apr 2008 17:49


IdFTP Upload: Datei überschreiben
 
Hi

Ich habe ein Problem beim hochladen von Dateien auf einen FTP Server. Und zwar überschreibt die Indy Komponente die Datei nicht automatisch, wenn diese bereits existiert. Gibt es da irgendeine Option die man da setzen kann?

Ich wollte jetzt erstmal versuchen, dass wenn eine Datei schon existiert, dann einfach mit der nächsten Datei fortgefahren wird, die hochgeladen werden soll.

Dazu wollte ich die Exception abfangen und dann halt überspringen.

Die Fehlermeldung wennn eine Datei bereits existiert lautet:

Im Projekt Project1.exe ist eine Exception der Klasse EIdReplyRFCError mit der Meldung '10042008: File exists
' aufgetreten.

ich wollte jetzt über
Delphi-Quellcode:
try
...
              except
                on E: EIdReplyRFCError do
                  continue;
              end;
leider kennt er "EIdReplyRFCError" nicht. Auch wenn ich die Unit "IdException" mit einbinde.

Also was soll ich jetzt tun? Entweder ich kann da irgendeine property setzen, dass die Datei überschrieben wird oder ich fange die exception ab...nur wie?

Gruß

haentschman 10. Apr 2008 18:02

Re: IdFTP Upload: Datei überschreiben
 
Delphi-Quellcode:
IDFTP.Put(SourceFile,DestFile,Append);
Hallo erstmal... :-D

Methode Put

SourceFile = string
DestFile = string - wenn nicht vorhanden wird die Datei erstellt
Append = True/False - True hängt an die vorhandene an False überschreibt

so funktionierts bei mir... :hi:

Klaus01 10. Apr 2008 18:03

Re: IdFTP Upload: Datei überschreiben
 
Hallo,

ein anderer Ansatz wäre, zu schauen ob die Datei auf dem Server schon existiert
wenn ja diese löschen und dann die neue Übertragung starten.

Mit idftp1.size(fileName) >= 0 kannst Du feststellen ob die Datei da ist
und mit idftp1.delete(fileName) kannst Du sie löschen.
Delphi-Quellcode:
if idfp1.size(fileName) >= 0 then
  idftp1.delete(fileName);
idftp1.put(...);
Ein Option zum Überschreiben der Files kenne ich auch nicht.

Grüße
Klaus

delphin06 10. Apr 2008 18:40

Re: IdFTP Upload: Datei überschreiben
 
Zitat:

Zitat von haentschman
Delphi-Quellcode:
IDFTP.Put(SourceFile,DestFile,Append);
Hallo erstmal... :-D

Methode Put

SourceFile = string
DestFile = string - wenn nicht vorhanden wird die Datei erstellt
Append = True/False - True hängt an die vorhandene an False überschreibt

so funktionierts bei mir... :hi:

Hmm...also das Append = true bedeutet, dass an die Datei angehängt wird wusste ich aber nich das bei false überschrieben wird.

Es klappt so auch bei mir!

Und ich habe gerade gemerkt, dass die exception gar nich beim überschreiben der datei gekommen ist, sondern wenn ich einen Ordner erstelle der schon existiert.


@Klaus01
Also die Methode mit datei löschen ist mir auch schon in den sinn gekommen. nur ich wollte halt erstmal wissen, ob es vieleicht doch ne einfachere methode gibt...

Auf jeden fall danke euch

Gruß


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