Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi

bin mir jetzt nicht gaaanz sicher ob das hier her gehört...

Trotzdem: Ich Transferiere eine Datei mittels FTP... nach dem transfer will ich wissen ob es geklappt hat... aber wie kann ich das herausbekommen??? Die Datei die ich übertrage wird ja nicht gelöscht wenn der Transfer gut gelaufen ist. Auch das Protokollieren des FTP funtioniert nicht, da ich den FTP von VB aus Aufrufe.

Hoffentlich kann mir jemand helfen...

Geschrieben
Original geschrieben von |roTekuGeL|

Auch das Protokollieren des FTP funtioniert nicht, da ich den FTP von VB aus Aufrufe.

Wie rufst Du denn den Transfer auf? Über ein VB-Steuerelement oder als shell-Aufruf oder sonstwie?

ICQ

Geschrieben
Original geschrieben von *I C Q*

Wie rufst Du denn den Transfer auf? Über ein VB-Steuerelement oder als shell-Aufruf oder sonstwie?

ICQ

mit dem shell befehl öffne ich nen ftp (also die ftp.exe)...

@peregrin: wie schreibe ich so ne steuerdatei?

@daking: hä?

Geschrieben
Original geschrieben von |roTekuGeL|

@peregrin: wie schreibe ich so ne steuerdatei?

Ich denke er meinr eine kleine Textdatei o.ä., wenn dann die zweite Datei übertragen wurde, ist die erste auch angekommen. Es könnte aber sein, dass der Upload der ersten abgebrochen ist und dann die zweite geschrieben wurde...

Überprüf doch einfach die Grösse der lokalen Datei und die Grösse der gespeicherten Datei, wenn gleich ist alles ok.

Wie das genau mit deinem FTP Client funktioniert weiss ich nciht, es gibt die Möglichkeit aber...

Geschrieben

also das mit dem quote geht schon mal danke!

nur wie hilft mir das zu überprüfen ob die datei nun transferiert wurde...

1. die Dateien KÖNNTEN ja zufääliger weise mal gleich groß sein (alte, neue datei)

dann würde das schonmal nicht funktionieren (ausnahmefall)

2. wie bekomm ich die größe aus der FTP konsole in mein VB prog?

Geschrieben
Original geschrieben von |roTekuGeL|

mit dem shell befehl öffne ich nen ftp (also die ftp.exe)...

Hmmm, ich vermute jetzt mal, dass Du den ftp mit dem Schalter -s startest, richtig?

Dann leite doch einfach die Ausgabe um in eine Logdatei und werte diesen Inhalt aus.

also z.B. so:


Sub tst()

Dim frei As Integer

Dim tststr As String

Dim trc As Boolean

Dim wo As Integer

trc = False

frei = FreeFile

Shell ("cmd /c ftp -s:Laufwerk:Verzeichnis:Skriptdatei > logdatei.txt")

Open "logdatei.txt" For Input As #frei

Do While Not EOF(frei)

    Line Input #frei, tststr

    If Left(tststr, 3) = "226" Then 'Transfer Complete

      trc = True

    ElseIf trc = True Then

        wo = InStr(1, tststr, "Bytes")

        If wo > 0 Then

            If Left(tststr, wo - 1) = FileLen("zuübertragendedatei.xxx") Then

                MsgBox "Transfer erfolgreich"

            Else

                MsgBox "Transfer fehlgeschlagen (Grösse ungleich)"

                Exit Do 'könnte man noch besser machen! ;-)

            End If

        End If

    End If

Loop

If trc = False Then

    MsgBox "Transfer fehlgeschlagen (Nicht completed)"

End If

Close #frei

kill "logdatei.txt"

End Sub

ICQ

EDIT: Close & Kill hinzugefügt! ;)

Geschrieben

Mist, zu langsam gepostet... ;)

Original geschrieben von |roTekuGeL|

1. die Dateien KÖNNTEN ja zufääliger weise mal gleich groß sein (alte, neue datei)

dann würde das schonmal nicht funktionieren (ausnahmefall)

Und wenn Du die Alte vorher löschst oder umbenennst? Kannst ja gleich in dem Script machen!

ICQ

Geschrieben

@ICQ: hast du das programm schonmal versucht laufen zu lassen?

die idee mit der Log datei hatte ich schon... hab ich glaub ich auch geschrieben ... aber egal... auf jeden fall funktioniert das ganze nicht wenn ich das < LOGFILE ranhänge warumauchimmer :confused:

Geschrieben
Original geschrieben von *I C Q*

Und wenn Du die Alte vorher löschst oder umbenennst? Kannst ja gleich in dem Script machen!

ICQ

die idee hatte ich auch schon... nur: mit der FTP exe kann man keine lokale datei umbenennen...

die idee mit dem löschen... ist der transfer fehlgeschlagen lösch ich die datei trotzdem, da die FTP exe trotzdem alle befehle abarbeitet...

Geschrieben
Original geschrieben von |roTekuGeL|

@ICQ: hast du das programm schonmal versucht laufen zu lassen?

Yep, gerade eben! ;)

Original geschrieben von |roTekuGeL|

die idee mit der Log datei hatte ich schon... hab ich glaub ich auch geschrieben ... aber egal... auf jeden fall funktioniert das ganze nicht wenn ich das < LOGFILE ranhänge warumauchimmer :confused:

Lass mich raten:

Du rufst das Ganze über shell("ftp.exe -s:xyz.txt > test.txt") auf, oder?

Das hab ich auch versucht und dann erstellt er mir tatsächlich keine Logdatei. Wenn Du allerdings die cmd (oder command.com) aufrufst und ihm als auszuführenden Befehl den ftp-Befehl mitgibst, dann klappt's!

ICQ

Edit: btw. es heisst > LOGFILE, aber das war vermutlich nur ein Vertipper, oder? ;)

Geschrieben
Original geschrieben von |roTekuGeL|

die idee hatte ich auch schon... nur: mit der FTP exe kann man keine lokale datei umbenennen...

Hmmm, machst Du einen GET oder einen POST? *grübel*

Ich bin jetzt von einem Post ausgegangen, ansonsten funktioniert das Konzept oben nicht wirklich. ;)

ICQ

Geschrieben
Original geschrieben von |roTekuGeL|

dank dir!!!:e@sy :D

Kein Problem! ;)

Original geschrieben von |roTekuGeL|

...nur eine frage hätte ich noch: was bedeutet das /c for dem ftp -s... ?

Das /c ist ein Schalter für cmd (bzw. command.com) und bedeutet: Führe das, was dort hinter dem /c steht nach dem Aufruf der Dos-Box aus.

Info's findest Du, wenn Du in der Dos-Box "cmd /?", bzw. "command /?" eingibst, dort sind verschiedene Schalter erklärt.

ICQ

Geschrieben

hätte auch noch einen Vorschlag... ich glaube ich hätte das so gelöst:

command.. bla, bla, bla über trage datei bla, bla blub..

dann nehme ich die datei, generiere eine checksum (z.B. CRC). Diese schreibe ich in eine Datei (könnte man noch mitübertragen). Dan wird die Datei übertragen. Wenn das fertig ist, kann man (bei direktem Zugriff auf den server, bzw. Client) von der übertragenen Datei wieder eine checksum bilden und die vergleichen. Das sollte sicher sein...

Wenn man keinen direkten Zugriff auf den zielrechner hat, müsste man die datei nochmals übertragen und dann prüfen,... aber nur wenn es sich um kleine dateien handelt...

um nur zu überprüfen, ob die datei übertragen wure reicht euer loggin aus, klingt ja ganz gut..

aber wenn ich so drüber nachdenke, bringt mir mein CRC auch nichts... Die datensicherheti wird ja durch TCP (bzw FTP) sichergestellt ... naja..

was solls, Taz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...