URLを渡した後にリモートファイルが存在するかどうかを確認する機能があります。それが存在しないと仮定すると、関数は0を返し、別のサブで使用されます。ここでは、私が持っているものです。VB.net - リモートファイルが存在するかどうかを確認する
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
私はアプリを実行して、意図的にVisual StudioがSystem.Net.WebExceptionが未処理だった私を与える存在しないURLを指定した場合。メッセージ=リモートサーバーからエラーが返されました:(550)ファイルが使用できません(ファイルが見つかりません、アクセス不可など)。
"if response.StatusCode ..."がプログラムをシャットダウンするのではなく、それを処理すると仮定しました。
助けてください。
DWM
'Try' /' Catch'ブロック内のすべてをラップする方法と、例外がスローされたときにfalseを返す方法はありますか? –
ところで、** 1)**なぜあなたは 'Boolean'の代わりに' Integer'を戻り値の型として使用していますか? ** 2)** 'RemoteFileExists = ...'と 'Exit Function'(' Return'を呼び出すことも関数を終了します)の代わりに 'Return 0'または' Return 1'を呼び出します。 –
これは私が把握できるものなので、整数を使用していました。私はtry/catchを試みましたが、それを正しく取得できませんでした。私はVBにはかなり新しいです。例を挙げたいと思ったら、私は深く感謝しています。 –