[VB] My.Computer.Network.Download

11/01/2012 19:11 Ludder231#1
Hi,

ich hab hier ein Problem und zwar möchte ich ne File von meinem FTP runterladen. Das geht auch, bis ich die Runterzuladenden Dateipfad variieren lasse.

PHP Code:
 My.Computer.Network.DownloadFile("ftp://****.bplaced.net/Dateien/" selectedSaveFileDialog1.FileName"****""****) 
Die variable "selected" ist ein eintrag aus einer Listbox, der auch richtig ist.
Ich hab im Ordner "Dateien" mehrere Dateien. Diese sollen durch auswählen("selected") in der Listbox und auf Kopfdruck runtergeladen werden. Wenn ich bei
PHP Code:
 My.Computer.Network.DownloadFile("ftp://****.bplaced.net/Dateien/Balba.txt" SaveFileDialog1.FileName"****""****) 
"Balba.txt" manuell reinschreibe funktioniert es.

Mfg Ludder231
11/01/2012 19:14 mrapc#2
die werden dann aber auch alle unter dem selben namen gespeichert "SaveFileDialog1.FileName" muss natürlich auch ein anderen namen haben wenn du ihn nicht jedes mal eingeben willst, da ich denke das es eine Art Patcher oder Downloadtool werden soll.
11/01/2012 19:21 Ludder231#3
Durch SaveFiledialog1.Filename kann ich ja den Dateinamen selbst bestimmen. Aber ja das wird noch ausgetauscht :)
11/01/2012 19:28 mrapc#4
Dann musst du aber auch jedes mal wenn die Auswahl in der Listbox sich ändert den ganzen Prozess von vorne starten lassen

Code:
Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            My.Computer.Network.DownloadFile("ftp://****.bplaced.net/Dateien/" & selected, SaveFileDialog1.FileName, "****", "****")
        End If

    End Sub
11/01/2012 19:36 coladose#5
Zum Downloaden würde ich einen Webclient verwenden, da dieser Events bietet und auch keine Logindaten erfragt. Es handelt sich um einen Webspace und dieser ist öffentlich, also kann er direkt auf dir Files zugreifen.

PHP Code:
Dim WithEvents wClient As New System.Net.Webclient

 
Private Sub ListBox1_MouseClick(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles ListBox1.MouseClick
Dim loc 
As String String.Empty
If 
ListBox1.SelectedItem "DeinItemName" Then
loc 
"DeineUrl"
SaveFileDialog.Show()
client.DownloadFileAsync(New Uri(loc),SaveFileDialog.FileName)
Else if .....
End If
    
End Sub 
So in der Art...
11/01/2012 19:38 Ludder231#6
Nee ich mach das auf kopfdruck
PHP Code:
 Private Sub btn_Herunterladen_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles btn_Herunterladen.Click
        Dim selected 
As String lb_dateien.SelectedItem
        SaveFileDialog1
.ShowDialog()
        
My.Computer.Network.DownloadFile("ftp://****.bplaced.net/Dateien/" selectedSaveFileDialog1.FileName"****""****")


    
End Sub 
Das von coladose funktioniert mit selected...
Und was muss ich machen um das mit uploadfileasync zu machen?
11/03/2012 17:53 Der4StoryMan#7
Ich glaube dein Fehler ist dieser, zumindest war er dies bei mir früher;
Ersetzte;
Code:
My.Computer.Network.DownloadFile("ftp://****.bplaced.net/Dateien/" & selected, SaveFileDialog1.FileName, "****", "****")
Durch;
Code:
My.Computer.Network.DownloadFile("http://****.bplaced.net/Dateien/" & selected, SaveFileDialog1.FileName)
Zudem brauchst du die Dateiendung, sprich;
Hat die Variable selected am ende eine Dateiendung (zB ".exe" / ".txt" / ".png" / etc.),
falls nicht is dies dein Fehler, da der Link dann so aussieht:
Code:
My.Computer.Network.DownloadFile("http://www.Doamin.XX/Dateien/Programm", SaveFileDialog1.FileName)
Und so muss er aussehen:
Code:
My.Computer.Network.DownloadFile("http://www.Doamin.XX/Dateien/Programm.exe", SaveFileDialog1.FileName)

Vielleicht war ja das dein Fehler.
MFG
(PS; Thanks nicht vergessen, falls ich dir helfen konnte)
11/03/2012 21:29 coladose#8
Quote:
Originally Posted by Ludder231 View Post
Nee ich mach das auf kopfdruck
PHP Code:
 Private Sub btn_Herunterladen_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles btn_Herunterladen.Click
        Dim selected 
As String lb_dateien.SelectedItem
        SaveFileDialog1
.ShowDialog()
        
My.Computer.Network.DownloadFile("ftp://****.bplaced.net/Dateien/" selectedSaveFileDialog1.FileName"****""****")


    
End Sub 
Das von coladose funktioniert mit selected...
Und was muss ich machen um das mit uploadfileasync zu machen?

Für einen asynchronen Datei-Upload brauchst du nen Client. Da führt kein Weg drum herum (?)

PHP Code:
Dim myClient As New System.Net.Webclient

myClient
.Credentials = New Net.NetworkCredential("ftpusrname""ftppassword")
                
myClient.UploadFileAsync(New Uri(UPLOAD_URL), FilePath
11/04/2012 11:21 GodHacker#9
Benutzt du den Webspace dort nur als Dateiablage um z.B. Filesharing zu machen oder hast du da auch eine richtige Website?

Hier mal etwas aus den AGBs von bplaced.net7
Quote:
So genannte „Browsergames“ bzw. entsprechende Tools, Proxy-Dienste, Toplisten, Bilderhosting Dienste („Imagehosting“), Bots, Webhosting-Dienste, Filesharing-Software sowie Torrents sind aufgrund zu hoher serverseitiger Belastung nicht gestattet, dies umfasst weiters auch Chatsoftware, sog. „Shoutboxes“, oder andere Software, die kontinuierlich Datensätze von einem bplaced-Server anfordert, oder ungewöhnlich lange offene Verbindungen zu diesem aufrecht erhält.
Solltest du keine ordentliche Website haben, dann empfehle ich dir den Account am besten zu löschen und dann einen reinen FTP-Server zu suchen (die gibt es auch reichlich). Dies sage ich dir nur, damit du deine Mühe nicht umsonst machst und die deinen Account dann sperren (ist bei denen schon öfters passiert). :D


MfG
GodHacker