gpt4 book ai didi

vb.net - 检查FTP是否在线/离线

转载 作者:行者123 更新时间:2023-12-04 02:50:33 24 4
gpt4 key购买 nike

在 Visual Basic 中确定 ftp 服务器是联机还是脱机的最佳方法是什么?我已经尝试了很多不同的方式来 ping ftp 服务器,但是无论我尝试什么,我都会收到这个错误:

An exception occurred during a Ping request.

这很容易解决吗?还是有比我现在使用的更好的方法?

最佳答案

使用 webrequest,试试我找到的这段代码

您好,这应该可以正常工作:

Imports System.Net

Dim request = _
DirectCast(WebRequest.Create _
("ftp://ftp.example.com/folder_here/"), FtpWebRequest)

request.Credentials = _
New NetworkCredential("user_here", "pass_here")

request.Method = WebRequestMethods.Ftp.ListDirectory

Try
Using response As FtpWebResponse = _
DirectCast(request.GetResponse(), FtpWebResponse)
' Folder exists here
MsgBox("exists!")
End Using

Catch ex As WebException
Dim response As FtpWebResponse = _
DirectCast(ex.Response, FtpWebResponse)
'Does not exist
If response.StatusCode = _
FtpStatusCode.ActionNotTakenFileUnavailable Then
MsgBox("Doesn't exist!")
End If
End Try

..我们的想法是,我们使用 FtpWebRequest 类并传递带有尾部斜杠“/”的文件夹名称,如果找到该文件夹​​,则响应将在 Try-Catch block 内得到很好的处理,如果无法找到该文件夹发现,我们使用 statusCode (ActionNotTakenFileUnavailable) 处理异常控制,以确定是否缺少文件夹会导致异常。那应该可以正常工作。

Sources First answer

---------------- 请尝试 --------------------

Public Function CheckIfFtpFileExists(ByVal fileUri As String) As Boolean
Dim request As FtpWebRequest = WebRequest.Create(fileUri)
request.Credentials = New NetworkCredential("username", "password")
request.Method = WebRequestMethods.Ftp.GetFileSize
Try
Dim response As FtpWebResponse = request.GetResponse()
' THE FILE EXISTS
Catch ex As WebException
Dim response As FtpWebResponse = ex.Response
If FtpStatusCode.ActionNotTakenFileUnavailable = response.StatusCode Then
' THE FILE DOES NOT EXIST
Return False
End If
End Try
Return True
End Function

Get 是这样调用的:

If CheckIfFtpFileExists("ftp://ftp.domain.com/filename.txt") Then
' Do something
End If

Sources

关于vb.net - 检查FTP是否在线/离线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17863600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com