FTP verbinding opzetten in vb.net

  • Onderwerp starter Onderwerp starter nojat
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

nojat

Gebruiker
Lid geworden
26 aug 2004
Berichten
119
hallo

weet iemand hoe de script is voor het opzetten van een ftp verbinding ??

mijn eerste regel gaat al fout

dim ftp as new ftp


M Vr Gr Nojat
 
Hieronder is een zeer simpel ftp-programma. Het laat alleen de bestanden op een server zien. Wil je echt een ftp-programma gaan maken, dan zou je toch echt met API's moeten gaan werken, anders is het niet mogelijk om een bestendig programma te kunnen maken. Je hebt niet alleen API's nodig, maar je moet op zijn minst een .BAS gaan aanmaken en ook van Classes gebruik gaan maken. Een Common-Dialog control, een List-view control enz.... Je zou bovenstaande link (van @hackerfrans) goed moeten gaan bestuderen.

Plaats op het form het volgende:

1) 2 text-boxes (plaats ze onder elkaar, de bovenste is voor het ingeven v.e. ftp-adres bedoeld en de onderste voor de resultaten van het 'DIR' commando. (vele servers zijn Unix-servers, alleen kan met VB het Unix-commando ls -l niet worden gegeven)
2) 2 buttons. Plaats ze naar eigen believen. Maar het is beter dat één v.d. 2 buttons(waarvan de Caption = Verbinden) links van de bovenste text-box wordt geplaatst. De Caption van de andere button is Sluiten.
3) Een internet-besturingselement, inet geheten. De plaats waar dit element komt te staan is ook niet belangrijk, aangezien het tijdens Run-time onzichtbaar blijft.

Het besturingselement Inet verkrijg je door:

1) Rechtsklik op de tool-box
2) Klik op Componenenst
3) Klik op het tabblad Controls
4) zet een vinkje bij Microsoft Internet Transfer Control 6.0
5) Klik op Toepassen en hierna op Sluiten.
Inet is nu in de tool-box toegevoegd.

De namen(let op! hiermee bedoel ik de captions van de buttons) voor de 2 buttons(knoppen) zijn bekend, namelijk: Verbinden en Sluiten.

6) Geef voor de knop verbinden de naam cmdVerbinden en de naam voor de knop Afsluiten cmdAfsluiten.

7) Zet verder voor de knop Verbinden de eigenschap(property) Default op true en voor de knop Afsluiten de eigenschap Cancel op true.

8) Geef de naam txtURL voor de bovenste text-box

9) En voor de onderste text-box de naam txtGegevens.
En verder:

Locked = True
Multiline = True
Scrollbars = 2-Vertical

10) De naam van Inet wordt netFTP en de eigenschap Protocol is 2-icFTP

En copieer verder de onderstaande codes:

Code:
Private Sub cmdAfsluiten_Click()
  Unload Me
End Sub

Private Sub cmdVerbinden_Click()
  On Error GoTo fout
  netFTP.RemotePort = 21
  netFTP.Protocol = icFTP
  netFTP.RequestTimeout = 60
  netFTP.RemoteHost = txtURL.Text
  netFTP.UserName = "VUL HIER JE GEBRUIKERSNAAM IN"
  netFTP.Password = "VUL HIER HET PASSWORD IN"
  netFTP.Execute txtURL.Text, "DIR"
  Exit Sub
fout:
  txtGegevens.Text = "Fout: " & Err.Description
End Sub

Private Sub Form_Load()
  txtURL.Text = ""
  txtGegevens.Text = ""
  Me.Show
  txtURL.SetFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
  netFTP.Cancel
End Sub

Private Sub netFTP_StateChanged(ByVal State As Integer)
  Dim vntGegevens As Variant
  Dim strGegevens As String
  strGegevens = ""
  Select Case State
     Case icError
        txtGegevens.Text = "Fout: " & netFTP.ResponseInfo
     Case icResponseCompleted
        Do
            vntGegevens = netFTP.GetChunk(1024)
            If Len(vntGegevens) = 0 Then
               Exit Do
            End If
            strGegevens = strGegevens & vntGegevens
            DoEvents
        Loop
        txtGegevens.Text = strGegevens
   End Select
           
End Sub

Private Sub txtURL_Validate(Cancel As Boolean)
  If Trim$(txtURL.Text) = "" Or InStr(txtURL.Text, ".") = 0 Then
     MsgBox "Voer een FTP-adres in a.u.b.", vbOKOnly Or vbExclamation, "FTP-client"
     Cancel = True
  End If
End Sub

Als je het programma runt, dan behoor je in de text-box (txtURL, bovenste text-box) het adres v.e. ftp-server in te vullen, waarna je op de knop Verbinden klikt.

(bijvoorbeeld: ftp.members.lycos.nl)

Dennis.
 
Geplaatst door DENNIS90
Hieronder is een zeer simpel ftp-programma. Het laat alleen de bestanden op een server zien. Wil je echt een ftp-programma gaan maken, dan zou je toch echt met API's moeten gaan werken, anders is het niet mogelijk om een bestendig programma te kunnen maken. Je hebt niet alleen API's nodig, maar je moet op zijn minst een .BAS gaan aanmaken en ook van Classes gebruik gaan maken. Een Common-Dialog control, een List-view control enz.... Je zou bovenstaande link (van @hackerfrans) goed moeten gaan bestuderen.

Plaats op het form het volgende:

1) 2 text-boxes (plaats ze onder elkaar, de bovenste is voor het ingeven v.e. ftp-adres bedoeld en de onderste voor de resultaten van het 'DIR' commando. (vele servers zijn Unix-servers, alleen kan met VB het Unix-commando ls -l niet worden gegeven)
2) 2 buttons. Plaats ze naar eigen believen. Maar het is beter dat één v.d. 2 buttons(waarvan de Caption = Verbinden) links van de bovenste text-box wordt geplaatst. De Caption van de andere button is Sluiten.
3) Een internet-besturingselement, inet geheten. De plaats waar dit element komt te staan is ook niet belangrijk, aangezien het tijdens Run-time onzichtbaar blijft.

Het besturingselement Inet verkrijg je door:

1) Rechtsklik op de tool-box
2) Klik op Componenenst
3) Klik op het tabblad Controls
4) zet een vinkje bij Microsoft Internet Transfer Control 6.0
5) Klik op Toepassen en hierna op Sluiten.
Inet is nu in de tool-box toegevoegd.

De namen(let op! hiermee bedoel ik de captions van de buttons) voor de 2 buttons(knoppen) zijn bekend, namelijk: Verbinden en Sluiten.

6) Geef voor de knop verbinden de naam cmdVerbinden en de naam voor de knop Afsluiten cmdAfsluiten.

7) Zet verder voor de knop Verbinden de eigenschap(property) Default op true en voor de knop Afsluiten de eigenschap Cancel op true.

8) Geef de naam txtURL voor de bovenste text-box

9) En voor de onderste text-box de naam txtGegevens.
En verder:

Locked = True
Multiline = True
Scrollbars = 2-Vertical

10) De naam van Inet wordt netFTP en de eigenschap Protocol is 2-icFTP

En copieer verder de onderstaande codes:

Code:
Private Sub cmdAfsluiten_Click()
  Unload Me
End Sub

Private Sub cmdVerbinden_Click()
  On Error GoTo fout
  netFTP.RemotePort = 21
  netFTP.Protocol = icFTP
  netFTP.RequestTimeout = 60
  netFTP.RemoteHost = txtURL.Text
  netFTP.UserName = "VUL HIER JE GEBRUIKERSNAAM IN"
  netFTP.Password = "VUL HIER HET PASSWORD IN"
  netFTP.Execute txtURL.Text, "DIR"
  Exit Sub
fout:
  txtGegevens.Text = "Fout: " & Err.Description
End Sub

Private Sub Form_Load()
  txtURL.Text = ""
  txtGegevens.Text = ""
  Me.Show
  txtURL.SetFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
  netFTP.Cancel
End Sub

Private Sub netFTP_StateChanged(ByVal State As Integer)
  Dim vntGegevens As Variant
  Dim strGegevens As String
  strGegevens = ""
  Select Case State
     Case icError
        txtGegevens.Text = "Fout: " & netFTP.ResponseInfo
     Case icResponseCompleted
        Do
            vntGegevens = netFTP.GetChunk(1024)
            If Len(vntGegevens) = 0 Then
               Exit Do
            End If
            strGegevens = strGegevens & vntGegevens
            DoEvents
        Loop
        txtGegevens.Text = strGegevens
   End Select
           
End Sub

Private Sub txtURL_Validate(Cancel As Boolean)
  If Trim$(txtURL.Text) = "" Or InStr(txtURL.Text, ".") = 0 Then
     MsgBox "Voer een FTP-adres in a.u.b.", vbOKOnly Or vbExclamation, "FTP-client"
     Cancel = True
  End If
End Sub

Als je het programma runt, dan behoor je in de text-box (txtURL, bovenste text-box) het adres v.e. ftp-server in te vullen, waarna je op de knop Verbinden klikt.

(bijvoorbeeld: ftp.members.lycos.nl)

Dennis.


Bedankt Dennis ik ga het uitproberen

Nojat
 
Geplaatst door nojat



wel een lang verhaal kan het korter net als in dos ?

server:
username
password
put stement

Gr
Het verhaal van mij hierboven kan ook niet korter, dat is al de korste wat er is. Ik wilde je even laten zien, dat het maken van zo'n programma toch heel wat van je gevergd wordt. Hier wordt ook al gebruikt gemaakt v.e. DLL bestand(Inet-control), als je dat nog een keer zelf moet gaan programmeren........

En v.w.b. die dos-commando's, daarmee werk ik het liefst. (O ja, vóór de put statement moet wel eerst een keuze worden gemaakt tussen het ingeven van het commando ascii of bin, heel belangrijk, anders zijn de bestanden die je down- en up-loadt verminkt. Een kenmerk v.e. binair bestand is, dat dat bestand meer dan 70% 'onleesbare'/speciale karakters bevat en ascii in zijn geheel te lezen is)

Dennis.
 
Laatst bewerkt:
Geplaatst door nojat
Bedankt Dennis ik ga het uitproberen

Nojat
Geen dank. Ik moet het trouwens nog gaan verfijnen. Als ik met een ftp-server ga connecten, dan krijg in de onderste text-box(txtGegevens) de files op die server te zien. Maar daarnet weer niet:( Moet nog gaan uitzoeken.

Dennis.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan