cmprmsd
Lt. Commander
- Registriert
- Mai 2005
- Beiträge
- 1.973
Hi
Ich will mir ein automatisiertes Programm schreiben, dass mit einem Klick eine Datei von nem Server runterlädt, entpackt und dann 2 ordner und einige dateien in einen anderen Ordner kopiert.
Die Datei ist im rarformat auf dem server, aber das Problem gehe ich später an.
Im moment habe ich das problem, dass die runtergeladene datei einfach zu klein ist oO
Also statusbar und alles ist da, aber am ende ist meine rar zu klein und lässt sich nicht öffnen.
Mit FF geladen = 53,2 KB (54.542 Bytes)
Mit dem programm = 26,4 KB (27.058 Bytes)
Als käme nur ein Teil der Datei an =/
Hier der code den ich zum download nutze (vbarchiv)
'puuuhuuush :>
Ich will mir ein automatisiertes Programm schreiben, dass mit einem Klick eine Datei von nem Server runterlädt, entpackt und dann 2 ordner und einige dateien in einen anderen Ordner kopiert.
Die Datei ist im rarformat auf dem server, aber das Problem gehe ich später an.
Im moment habe ich das problem, dass die runtergeladene datei einfach zu klein ist oO
Also statusbar und alles ist da, aber am ende ist meine rar zu klein und lässt sich nicht öffnen.
Mit FF geladen = 53,2 KB (54.542 Bytes)
Mit dem programm = 26,4 KB (27.058 Bytes)
Als käme nur ein Teil der Datei an =/
Hier der code den ich zum download nutze (vbarchiv)
Ich find den Fehler nichtImports System.Net
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub cmdDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDownload.Click
Dim dlg As New FolderBrowserDialog
Dim strFile As String
Dim strFolder As String
' falls keine URL angegeben, Vorgang abbrechen
If Label1.Text.Length = 0 Then Exit Sub
Dim strPathParts() As String = Label1.Text.Split("/")
strFile = strPathParts(strPathParts.GetUpperBound(0))
strFolder = "C:\"
' Download starten
cmdDownload.Enabled = False
Call DownloadItem(Label1.Text, strFile, strFolder)
cmdDownload.Enabled = True
ProgressBar1.Visible = False
End Sub
Private Sub DownloadItem(ByVal sURL As String, _
ByVal strFile As String, ByVal strFolder As String)
Dim webreq As HttpWebRequest
Dim webresp As HttpWebResponse
Dim bReader As BinaryReader
Dim bWriter As BinaryWriter
Dim stream As FileStream
Dim buffer() As Byte = New Byte(1024) {}
Dim bytesRead As Integer
' Fortschritt zunächst auf 0% setzen
Me.ProgressBar1.Value = 0
Try
' Datei-Download via HTTP "anfordern"
webreq = HttpWebRequest.Create(sURL)
webresp = webreq.GetResponse
' Download-Größe
Me.ProgressBar1.Maximum = webresp.ContentLength
' lokale Datei öffnen
stream = New FileStream(strFolder & "\" & strFile, FileMode.Create)
bReader = New BinaryReader(webresp.GetResponseStream)
bWriter = New BinaryWriter(stream)
' Datei blockweise downloaden und lokal speichern
Do
bytesRead = bReader.Read(buffer, 0, 1024)
bWriter.Write(buffer, 0, bytesRead)
ProgressBar1.Value += bytesRead
ProgressBar1.Update()
Loop Until bytesRead = 0
' alle Dateien schließen
bWriter.Close()
bReader.Close()
stream.Close()
Catch ex As Exception
' Bei Fehler...
MessageBox.Show("Fehler: " & vbCrLf & ex.Message, _
"Fehler", MessageBoxButtons.OK, _
MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
End Try
End Sub
End Class
'puuuhuuush :>
Zuletzt bearbeitet: