FTP Anzahl der Dateien Ermittel und Löschen aus den FTP Ordner

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von jnpanzer.

    FTP Anzahl der Dateien Ermittel und Löschen aus den FTP Ordner

    Hallo Ich habe ine Problem, wo ich nicht weiterkomme.

    Ich hab eine FTP Ordner wo ich Dateien runterladen möchte
    Auf den FTP Ordner liegen verschieden Dateien. Dies klappt schon mal.
    Ich möchte aber dei Anzahl der Dateien im FTP Ordner (ohne Unterordner ermiteln).

    Also Download klappt in meinen Test Ordner.

    Das löschen nach Downlaod der Datei im FTP Ordner habe habe ich noch nicht gelöst.
    Das ermittel die Anzahl der Dateien hab Ich noch nicht gelöst.

    Kann mir jemand einen Tipp geben?



    VB.NET-Quellcode

    1. Dim url As String = "ftp://XXX.XXX.XXX.XXX/out/"
    2. Dim credentials As NetworkCredential = New NetworkCredential("XXXXXX", "XXXXX")
    3. Const localPath = "c:\Test\"
    4. Dim listRequest As FtpWebRequest = CType(WebRequest.Create(url), FtpWebRequest)
    5. listRequest.Method = WebRequestMethods.Ftp.ListDirectory
    6. listRequest.Credentials = credentials
    7. Dim latest As String = Nothing
    8. Using listResponse As FtpWebResponse = CType(listRequest.GetResponse(), FtpWebResponse),
    9. listStream As Stream = listResponse.GetResponseStream(),
    10. listReader As StreamReader = New StreamReader(listStream)
    11. While Not listReader.EndOfStream
    12. Dim filename As String = listReader.ReadLine()
    13. If filename.Contains("trip") Then
    14. Console.WriteLine("Found {0} ...", filename)
    15. If (latest Is Nothing) OrElse (latest < filename) Then
    16. latest = filename
    17. End If
    18. End If
    19. End While
    20. End Using
    21. If Not latest Is Nothing Then
    22. Console.WriteLine("Downloading {0} ...", latest)
    23. Dim webClient As New WebClient()
    24. webClient.Credentials = credentials
    25. webClient.DownloadFile(url + latest, Path.Combine(localPath, latest))
    26. End If
    27. End Sub


    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo @jnpanzer

    Im Grundne musst du für das löschen die RequestMethod ändern.

    Hier zwei Beispiele. 1 mal für das Zählen von Ordnern und Dateien am FTP Server/Ordner und ein mal für das löschen.

    VB.NET-Quellcode

    1. Private Sub ButtonCount_Click(sender As Object, e As RoutedEventArgs)
    2. Dim url As String = "ftp://speedtest.tele2.net/upload"
    3. 'Dim credentials As NetworkCredential = New NetworkCredential("XXXXXX", "XXXXX")
    4. Const localPath = "c:\TestFTP\"
    5. If Not IO.Directory.Exists(localPath) Then IO.Directory.CreateDirectory(localPath)
    6. Dim listRequest As FtpWebRequest = CType(WebRequest.Create(url), FtpWebRequest)
    7. listRequest.Method = WebRequestMethods.Ftp.ListDirectory
    8. 'listRequest.Credentials = credentials
    9. Dim latest As String = Nothing
    10. Using listResponse As FtpWebResponse = listRequest.GetResponse
    11. Dim filesCount As Integer = 0
    12. Dim directoriesCount As Integer = 0
    13. Using myReader As New IO.StreamReader(listResponse.GetResponseStream())
    14. Do While Not myReader.EndOfStream
    15. Dim itemName As String = myReader.ReadLine()
    16. Debug.WriteLine(itemName)
    17. If InStr(Mid(itemName, itemName.Length - 4, 4), ".") > 0 Then
    18. filesCount += 1
    19. Else
    20. directoriesCount += 1
    21. End If
    22. Loop
    23. MsgBox(String.Format("Es sind insgesamt {1} Dateien und Order.{0}Davon {2} Order und {1} Dateien", vbNewLine, filesCount + directoriesCount, directoriesCount, filesCount))
    24. End Using
    25. End Using
    26. End Sub


    VB.NET-Quellcode

    1. Private Sub ButtonDelete_Click_1(sender As Object, e As RoutedEventArgs)
    2. Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create("ftp://ftpserver/deinordner/deinedatei.txt")
    3. request.Method = Net.WebRequestMethods.Ftp.DeleteFile
    4. 'request.Credentials = New Net.NetworkCredential("benutzername", "Passwort")
    5. Dim response As Net.FtpWebResponse = Nothing
    6. Try
    7. response = request.GetResponse()
    8. Catch ex As Exception
    9. MsgBox(ex.Message)
    10. End Try
    11. If response IsNot Nothing Then
    12. MsgBox("Erfolgreich gelöscht!")
    13. End If
    14. End Sub


    Bitte verstehe die Beispiele nicht als OutOfTheBox Copy&Paste Codesnipped.
    Es gibt hier viele stellen in dem Code welche für einen Produktiv nicht verwendet werden sollten. Bitte verstehe die Beispiele nur als Anregung. :thumbup:

    PS: Wenn du mehr mit FTP machst schau dir das hier mal an. codeproject.com/Articles/2245/…n-with-fully-managed-code

    In der Hoffnung dir trotzdem geholfen zu haben...
    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##