Ich habe eine Funktion zu überprüfen, ob eine Remote-Datei existiert, nachdem die URL übergeben wurde. Unter der Annahme, dass es nicht existiert, würde die Funktion 0 zurückgeben, um in einem anderen Sub verwendet zu werden. Hier ist, was ich habe:VB.net - sehen, ob Remote-Datei existiert
Public Function RemoteFileExists(ByVal fileurl As String) As Integer
Dim request As FtpWebRequest = DirectCast(WebRequest.Create(fileurl), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.GetFileSize
Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then
RemoteFileExists = 0
Exit Function
End If
Dim fileSize As Long = response.ContentLength
MsgBox(fileSize)
If fileSize > 0 Then
RemoteFileExists = 1
Else
RemoteFileExists = 0
End If
End Function
Wenn ich die app laufen und liefern absichtlich eine URL, die nicht Visual Studio vorhanden ist, gibt mir System.Net.WebException wurde nicht behandelt. Nachricht = Der Remote-Server hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z. B. Datei nicht gefunden, kein Zugriff).
Ich ging davon aus, dass das "if response.StatusCode ..." damit umgehen würde, anstatt das Programm herunterzufahren.
Jede Hilfe wird geschätzt.
DWM
Wie wäre es, alles in einen 'Try' /' Catch' Block zu bringen und false zurückzugeben, wenn eine Ausnahme ausgelöst wird? –
Übrigens, ** 1) ** Warum verwenden Sie eine "Ganzzahl" als Rückgabetyp anstelle von "Boolesch"? ** 2) ** Rufen Sie 'Return 0' oder' Return 1' anstelle von 'RemoteFileExists = ...' auf und 'Exit Function' (Aufruf von' Return' beendet ebenfalls die Funktion). –
Ich benutzte eine ganze Zahl, weil ich das herausfinden konnte. Ich habe versucht, es zu versuchen, konnte es aber nicht richtig machen. Ich bin ziemlich neu in VB. Wenn Sie mir ein Beispiel geben möchten, wäre ich sehr dankbar. –