.NETフレームワークでFTPプロトコルを実装していないため、これを1回の操作で行うことができます。
リモートディレクトリの一覧を表示し、削除するファイルをフィルタして1つずつ削除する必要があります。
実際にこの操作を1回の操作で実行する場合は、ファイルマスクの操作をサポートするサードパーティライブラリを使用してください。例えば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
私は接続を開くと、私はこのエラーが表示されます: 接続に失敗しました。接続に失敗しました。 すべての資格情報が正しいです。私はWinSCP.exeと接続して試してみると、完璧に動作します。 私は問題が転送プロトコルに関連していると考えます。 ご意見はありますか? ありがとう! @MartinPrikryl –
どのように 'winscp.exe'に接続しましたか?スクリプトやGUIの使用?スクリプト作成の場合は、どのコマンドを使用しましたか? GUIの場合、どのプロトコルを選択しましたか?あなたはWinSCP GUI [あなたのためのコードテンプレートを生成する](https://winscp.net/eng/docs/ui_generateurl#code)を持つことができます。 –