Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Vb.net 2010 Tiedoston lataus???

Happy [03.02.2011 02:24:57]

#

Hello.

ois pieni ongelma tiedostojen lataus virheilmoitusten kanssa.

scores = New WebClient
       Dim sourceURL1 = "http://**.**.**.*** &  scores.txt"
       Dim filedir1 = (Application.StartupPath & "\Pistelistat\" & "scores.txt")
       Try
           scores.DownloadFileAsync(New Uri(sourceURL1), (filedir1), True)
       Catch ex As Exception
           MsgBox("Lataus epäonnistui:  " + ErrorToString(), MsgBoxStyle.Critical)
       End Try

Siis tolla koodilla kyllä "tavara" tulee perille jos serveri toimii niinku pitääkin.
Mutta jos serveri on kaatunut tai ei ole ylipäätään käytössä, ni toi silti tekee uuden tyhjän tiedoston muina miehinä ja kaikki on muka OK.???

Missä vika???

Joku varmastikkin ehdottaa seuraavaa koodia..

My.Computer.Network.DownloadFile(http://**.**.**.***/scores.txt, Application.StartupPath & "\Pistelistat\" & scores.txt)

Sama homma... :(
Kuinka siis tehää sellanen...

Yhdistetään serveriin......
Yhdistetty serveriin.......
Tiedosto löydetty..........
Ladataan...................
Lataus suoritettu..........
Katkaistaan yhteys.........

Ps. tosta katkaistaan yhteys jutusta tuli mieleen, että noilla edellisillä koodeilla yhteys serveriin jää pysyväksi. siis ei katkea latauksen jälkeen.

- Happy -

Grez [03.02.2011 02:51:23]

#

Option Strict On
Imports System.Net
Imports System.IO
Module HappyDemo
    Sub Main()
        If (SaveWebPage("https://www.ohjelmointiputka.net/", "Omatiedosto.txt")) Then
            Console.WriteLine("Onnistui")
        Else
            Console.WriteLine("Epäonnistui")
        End If
    End Sub
    Public Function SaveWebPage(ByVal FromURL As String, ByVal ToFile As String) As Boolean
        Dim response As WebResponse = Nothing
        ' Prepare web request...
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(FromURL), HttpWebRequest)

        Try
            response = request.GetResponse()

            Dim br As New BinaryReader(response.GetResponseStream())
            Dim bw As New BinaryWriter(New FileStream(ToFile, FileMode.OpenOrCreate, FileAccess.Write))
            Do
                Dim data = br.ReadBytes(1024)
                If data.Length = 0 Then Exit Do
                bw.Write(data)
            Loop
            bw.Close()
            br.Close()
            response.Close()
            Return True
        Catch e As System.Net.WebException
            Console.WriteLine("Web-pyyntö epäonnistui: " & e.Message)
            Return False
        Catch e As Exception
            Console.WriteLine("Jotain yllättävää meni pieleen: " & e.Message)
            Return False
        End Try
    End Function

End Module

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta