【发布时间】:2016-03-26 19:03:47
【问题描述】:
我有一个函数可以在传递 URL 后检查远程文件是否存在。假设它不存在,该函数将返回 0 以在另一个子中使用。这是我所拥有的:
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
当我运行应用程序并故意提供一个不存在的 URL 时,Visual Studio 给了我 System.Net.WebException 未处理。 Message=远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)。
我假设“if response.StatusCode...”会处理这个问题,而不是关闭程序。
任何帮助表示赞赏。
DWM
【问题讨论】:
-
如何将所有内容包装在
Try/Catch块中,并在抛出异常时返回false? -
顺便说一句,1) 为什么你使用
Integer作为返回类型而不是Boolean? 2) 调用Return 0或Return 1而不是RemoteFileExists = ...和Exit Function(调用Return也会退出函数)。 -
我使用的是整数,因为这是我能算出来的。我尝试了 try/catch 但无法正确处理。我对VB相当陌生。如果您愿意提供一个例子,我将不胜感激。
-
举个例子!
标签: vb.net ftpwebrequest