powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.NET докачка файла из интернета ( типо Доунлоад менеджера) нужна помощь
3 сообщений из 3, страница 1 из 1
VB.NET докачка файла из интернета ( типо Доунлоад менеджера) нужна помощь
    #38008102
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В обещм тут трудился над этой вещью . сделал код идиальный для моей ситуации.
но тольк все стало идеально в скоросте загрузки, стала появляться проблема с докачкой файла. не хочет работать addRange . помогите разобраться почему такое?
выкладываю сурс
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
Imports System.IO
Imports System.net
Public Class dwtofile
    Public dwpath As String
    Public topath As String
    Public allleght As Long
    Public curentleght As Long
    Public percent As Integer
    Public status As String = "ready"
    Public flagstop As Boolean

    Private Sub dw()
        On Error Resume Next
        flagstop = False
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(dwpath), HttpWebRequest)
        request.Method = "GET"
        request.UserAgent = "Mozila/5.O (Windows; U; Windows NT 5.1; ru; rv:1.9.0.15) Gecko/2OO912O2O8 Firefox/3.O.16"
        allleght = request.GetResponse.ContentLength
        curentleght = 0
        percent = 0
        status = "download"

        If Dir(topath) <> "" Then
            curentleght = FileLen(topath) - 1
            percent = CInt((curentleght * 100) / allleght)
            If FileLen(topath) >= allleght Then GoTo endt
            request.AddRange(CInt(curentleght), CInt(allleght))
        End If


        Dim FLOut As System.IO.FileStream
        FLOut = New FileStream(topath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite)
        FLOut.Seek(curentleght, SeekOrigin.Current)
        If flagstop = True Then flagstop = False : Exit Sub

        'testzon
        Dim inn As Long


        Dim stream2 As Stream = request.GetResponse().GetResponseStream()
        Dim reader2 As New StreamReader(stream2, System.Text.Encoding.Default)
        Dim b(0) As Char
        Dim h As Byte
        Do
            If flagstop = True Then flagstop = False : Exit Sub
            reader2.Read(b, 0, 1)
            h = Asc(b(0))
            FLOut.WriteByte(h)
            curentleght = curentleght + 1
            percent = CInt((curentleght * 100) / allleght)
            If reader2.EndOfStream = True Then Exit Do
            If curentleght > allleght Then Exit Do

        Loop


        FLOut.Close()

        stream2.Close()
        reader2.Close()
endt:
        status = "done"
    End Sub
    Public Sub start_download()
        Dim jk As Threading.Thread
        jk = New Threading.Thread(AddressOf dw)
        jk.Start()

    End Sub
...
Рейтинг: 0 / 0
VB.NET докачка файла из интернета ( типо Доунлоад менеджера) нужна помощь
    #38008390
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что странно. адрендж не ставится в хиадер в данном исходнике. почему не известно.

testparam = request.Headers.Get("Range")

показывает от 0-и до размера файла

народ как такуэ проблемку решить?
...
Рейтинг: 0 / 0
VB.NET докачка файла из интернета ( типо Доунлоад менеджера) нужна помощь
    #38008587
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос исчерпан сам нашел ответ на свою глупую ошибку.

аддренж стоит после получения ответа от сервера
Код: vbnet
1.
allleght = request.GetResponse.ContentLength



создал чтото типо хиад запроса перед началом загрузки
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
 Function getleght(ByVal ur As String) As Long
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(ur), HttpWebRequest)
        Return request.GetResponse.ContentLength
    End Function
=========================================

allleght = getleght(dwpath)




теперь все работает как часики.)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.NET докачка файла из интернета ( типо Доунлоад менеджера) нужна помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]