[VB.NET] Eliminare Cartella e sottocartelle TRAMITE FTP

davide.samba

Nuovo Utente
30 Lug 2013
29
0
0
ciao, sto cerca do di creare una funzione per eliminare una cartella su un server remoto utilizzando FTP. Ho trovato e provato diverse funzioni, ma nessuna sembra funzionare a dovere.

Questa funzione elimina la cartella solo se non ha sotto cartelle.
Codice:
Public Function EliminaDirectory(ByVal NomeCartella As String) As Boolean
        Try
            'Puntamento del File sul Server
            Dim FTPDelReq As System.Net.FtpWebRequest = System.Net.WebRequest.Create(NomeCartella)
            'Effettuare login credensiali
            FTPDelReq.Credentials = New Net.NetworkCredential(user, pass)
            'Richiamare il comando FTP RMD
            FTPDelReq.Method = System.Net.WebRequestMethods.Ftp.RemoveDirectory
            'Aspettare la risposta
            Dim FTPDelResp As System.Net.FtpWebResponse = FTPDelReq.GetResponse

            Return True
        Catch ex As Exception
            'MsgBox(ex.Message, vbCritical, "ERRORE")
            Return False
        End Try
    End Function
mentre questa che dovrebbe eliminare anche le sotto cartelle, mi da errore alla riga "myFtpWebResponse.Close()" dicendo che la risorsa non è gestita.
Codice:
Public Sub RemoveDirectory(ByVal rfn As String)
        Dim ftpreq As FtpWebRequest = FtpWebRequest.Create(RFN)
        With ftpreq
            .Credentials = New NetworkCredential(user, pass)
            .Method = WebRequestMethods.Ftp.ListDirectory
        End With

        Dim sr As New StreamReader(ftpreq.GetResponse().GetResponseStream())
        Dim str As String = sr.ReadLine()

        Dim myFtpWebRequest As FtpWebRequest
        Dim myFtpWebResponse As FtpWebResponse
        While str <> Nothing
            myFtpWebRequest = WebRequest.Create(rfn & "/" & str)
            myFtpWebRequest.Credentials = New NetworkCredential(user, pass)
            myFtpWebRequest.Method = WebRequestMethods.Ftp.DeleteFile
            'litResponse.Text = myFtpWebResponse.StatusDescription
            myFtpWebResponse.Close()

            str = sr.ReadLine()

        End While

        sr.Close()

    End Sub
mi servirebbe una funzione che elimini anche le sotto cartelle. E' possibile che sbaglio qualcosa?
 

Discussioni simili