Überpüfen ob Datei auf Server existiert...

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von enIking1998.

    Überpüfen ob Datei auf Server existiert...

    Hallihallo!

    Bevor ihr anfängt und mir Links zu anderen Post's schickt,bitte ich euch aber nach einer Lösung meines Problemes zu suchen...

    Also:
    Ich hab ein kleines Game,der Dateien auf den Server legt...nun ich prüfe die Datein,ob sie existieren,so:

    VB.NET-Quellcode

    1. Try
    2. Dim Browseranfrage As Net.HttpWebRequest
    3. Dim Browserantwort As Net.WebResponse
    4. Dim Browserstream As System.IO.Stream
    5. Dim Browserkodierungsart As System.Text.Encoding
    6. Dim Browserstreamread As System.IO.StreamReader
    7. Browseranfrage = Net.WebRequest.Create(New System.Uri("MEIN SERVER"))
    8. Browserantwort = Browseranfrage.GetResponse
    9. Browserstream = Browserantwort.GetResponseStream
    10. Browserkodierungsart = System.Text.Encoding.GetEncoding("utf-8")
    11. Browserstreamread = New System.IO.StreamReader(Browserstream, Browserkodierungsart)
    12. Catch
    13. End Try

    Nun ja,es klappt,aber dieser Codeauschnitt (muss)in einem Timer sein,mit dem Intervall 3000...
    Also es hängt sich auf...

    Leider gibt es(meines erachtens)keine Möglichkeit es asnynchon zum laufen zu bringen...
    Also will prüfen ob Datei auf Server existiert,dieses aber kontinuirlich ohne das jenes sich aufhängt...

    Wie kann ich es machen,das es sich nicht aufhängt?!

    Mfg.eniking1998
    @enIking1998
    Probier mal so:

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net
    3. Public Class Net
    4. Dim t As New Threading.Thread(AddressOf checkIt)
    5. Dim logList As New List(Of Boolean)
    6. Private WithEvents tmr As New Timer With {.Enabled = True, .Interval = 3000}
    7. Sub checkIt()
    8. logList.Add(checkFile("http://google.de"))
    9. End Sub
    10. Public Function checkFile(ByVal url As String) As Boolean
    11. Dim hReq As HttpWebRequest = DirectCast(HttpWebRequest.Create(url), HttpWebRequest)
    12. hReq.Proxy = Nothing
    13. hReq.Timeout = 1000
    14. Try
    15. Using hRes As HttpWebResponse = DirectCast(hReq.GetResponse(), HttpWebResponse)
    16. If hRes.StatusCode = HttpStatusCode.OK Then
    17. Return True
    18. Else
    19. Return False
    20. End If
    21. End Using
    22. Catch ex As Exception
    23. Return False
    24. End Try
    25. End Function
    26. Sub tmr_tick() Handles tmr.Tick
    27. If t.ThreadState = Threading.ThreadState.Stopped Then
    28. t.Start()
    29. End If
    30. End Sub
    31. End Class