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 -
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.