vb.net - 删除名称包含字符串(匹配掩码)的 FTP 文件

标签 vb.net file ftp

我想删除 FTP 服务器上名称包含特定字符串的所有文件。

例如,我在 FTP 上有这些文件:

pippo_1.jpg
pippo_2.jpg
pippo_3.jpg
pluto_1.jpg

我想删除所有包含 pippo 的文件。

如何通过一次操作删除所有这些文件?

谢谢!

最佳答案

.NET 框架中的 FTP 协议(protocol)的实现不允许在单个操作中执行此操作。

你必须列出远程目录,过滤你要删除的文件,然后一一删除。


如果您确实想在单个操作中执行此操作,则可以使用支持文件掩码操作的第三方库。例如WinSCP .NET assembly通过其 Session.RemoveFiles method 允许这样做:

Dim sessionOptions As New SessionOptions
With sessionOptions
    .Protocol = Protocol.Ftp
    .HostName = "ftp.example.com"
    .UserName = "username"
    .Password = "password"
End With

Using session As New Session
    session.Open(sessionOptions)
    session.RemoveFiles("/remote/path/pippo*").Check()
End Using

(我是 WinSCP 的作者)


如果您不想使用第三方库,请按照上面的建议进行操作:

Dim url As String = "ftp://ftp.example.com/remote/path/"
Dim credentials As NetworkCredential = New NetworkCredential("username", "password")

Dim listRequest As FtpWebRequest = WebRequest.Create(url)
listRequest.Method = WebRequestMethods.Ftp.ListDirectory
listRequest.Credentials = credentials

Using listResponse As FtpWebResponse = listRequest.GetResponse(),
      listStream As Stream = listResponse.GetResponseStream(),
      listReader As StreamReader = New StreamReader(listStream)
    While Not listReader.EndOfStream
        Dim filename As String = listReader.ReadLine()

        If filename.StartsWith("pippo") Then
            Dim deleteRequest As FtpWebRequest = WebRequest.Create(url + filename)
            deleteRequest.Method = WebRequestMethods.Ftp.DeleteFile
            deleteRequest.Credentials = credentials
            deleteRequest.GetResponse()
        End If
    End While
End Using

关于vb.net - 删除名称包含字符串(匹配掩码)的 FTP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42188999/

相关文章:

c++ - 从文件中将对象读入数组,反之亦然

php - 如何在通过 PHP 函数连接到 FTP 时测量 PHP 中的 FTP 传输速度

c# - 我必须使用哪个 Win32 函数将文件复制到智能手机文件夹?

vb.net - MaxReceivedMessageSize SOAP 服务

php - 如何将数据从 vb.net 应用程序发送到 Web 服务器?

.net - 使用OLEDB读取文件名中带有额外点的Excel csv文件

ios - 无法使用 [UIImage imageWithContentsOfFile :] and file is there 创建 UIImage

python - 删除文件python的空白空间

windows - 批量删除 FTP 上早于 x 天的文件

java - Apache Commons Net 获取 FTP 服务器的文件类型