как скачать файл (zip) из интернета на vb.net - PullRequest
1 голос
/ 22 февраля 2011

эксперты.Я пытаюсь создать простой загрузчик файлов (с графическим интерфейсом).Я довольно новичок в Vb.net, и я не нашел никакой полезной информации об этом в своих книгах.Все уроки в дикой природе меня расстраивают, так как фрагменты, которые я использую, в большинстве случаев - разные классы.Итак, у меня есть несколько основных вопросов:

  • Что мне использовать?HttpWebRequest/HttpWebResponse или FileWebRequest/FileWebResponse?
  • Как сохранить ResponseStream в файл?
  • Можно ли использовать ResponseStream, чтобы определить тип класса File (FileInfo) для полученияосновная информация о файле (размер, расширение и т. д.)
    • обычно ли это необходимо, если GetResponse().headers дает вам большую часть этой информации?

Мой код,что отстой, потому что я не знаю, как реализовать сохранение ....

Private Sub btn_downloader_Click(ByVal sender...) Handles btn_downloader.Click
     'e.g http://codeigniter.com/download.php'
     Dim fileUrl As String = txtBox_url.Text 
     Dim webUri = New Uri(fileUrl)
     Dim wReq As HttpWebRequest = WebRequest.Create(webUri)
     Dim wRes As HttpWebResponse = wReq.GetResponse()
     Dim resUri As Uri = wRes.ResponseUri
     'to ckeck if http://codeigniter.com/download.php gives http://codeigniter.com/download_files/reactor/CodeIgniter_2.0.0.zip and it does!'
     Dim resStream As Stream = wRes.GetResponseStream()

И теперь мне нужно каким-то образом использовать один из методов Stream для записи файла (на данном этапе только в качестве потока), но не знаю как.Я видел это в уроках

resStream.Read(buffer, offset, count)

, но я не знаю, что такое буфер и для чего он нужен.Должен ли я установить некоторые статические значения или какие-либо динамические, которые зависят от потоковых данных?

Нужна помощь!

PS Извините за плохой английский

Ответы [ 2 ]

2 голосов
/ 22 февраля 2011

Если вы хотите сделать это быстро без индикатора выполнения или чего-либо, что отслеживает скорость загрузки, оставшееся время и т. Д., Тогда я бы предложил WebClient.DownloadFileAsync or WebClient.DownloadFile.Вы должны быть в состоянии прочитать MIME-тип с помощью WebClient.ResponseHeaders["content-type"] и затем соответственно переименовать файл.

0 голосов
/ 24 февраля 2011

Это не завершено, но может привести вас в правильном направлении. «Местоположение, где сохранить файл ..

Public Function DownloadFile(ByVal URL As String, ByVal Location As String) As Boolean
    Try
        Dim WC As New WebClient
        WC.DownloadFile(URL, Location)
        Return True
    Catch ex As Exception
        Return False
    End Try
End Function
...