Supprimer un dossier avec ces sous-dossier sur un serveur

julie02000 - 21 janv. 2015 à 20:42
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 25 janv. 2015 à 00:06
Bonjour,
depuis plusieurs mois je cherche a supprimer un dossier non vide sur un serveur, j'ai chercher à droit et à gauche mais je ne trouve rien.
j'ai programmer sa :


Public dossierAsup As String
Public itemselect As String
Public logftp(3) As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

logftp(0) = TextBox1.Text
logftp(1) = TextBox2.Text
logftp(2) = TextBox3.Text

itemselect = "tchat"

dossierAsup = TextBox4.Text + "/" + itemselect

Call SUPdossier(dossierAsup)



End Sub

Sub SUPdossier(dossiersup)

Try
Dim ftpReq As FtpWebRequest = WebRequest.Create(logftp(0) + dossierAsup)
ftpReq.Method = WebRequestMethods.Ftp.RemoveDirectory
ftpReq.Credentials = New NetworkCredential(logftp(1), logftp(2))

Dim ftpResp As FtpWebResponse = ftpReq.GetResponse

TextBox5.AppendText(logftp(0) + dossiersup + "__SUPPRIMER" & vbCrLf)
Exit Sub
Catch ex As Exception
TextBox5.AppendText(logftp(0) + dossiersup + "__ERREUR SUPPRESSION" & vbCrLf)
End Try


Try
Dim ftpReq As FtpWebRequest = WebRequest.Create(logftp(0) + dossiersup)
ftpReq.Method = WebRequestMethods.Ftp.RemoveDirectory
ftpReq.Credentials = New NetworkCredential(logftp(1), logftp(2))

Dim ftpResp As FtpWebResponse = ftpReq.GetResponse

TextBox5.AppendText(logftp(0) + dossiersup + "__SUPPRIMER" & vbCrLf)

Catch ex As Exception
TextBox5.AppendText(logftp(0) + dossiersup + "__ERREUR SUPPRESSION" & vbCrLf)
End Try


'''''''''''''si dossier pas vide

''''supfichier

Dim arr() As String
Dim request As FtpWebRequest = WebRequest.Create(logftp(0) + dossiersup)
request.Credentials = New NetworkCredential(logftp(1), logftp(2))
request.Method = WebRequestMethods.Ftp.ListDirectory

Dim response As FtpWebResponse = request.GetResponse()
Dim responseStream As Stream = response.GetResponseStream()
Dim reader As StreamReader = New StreamReader(responseStream, System.Text.Encoding.Default)
Dim lol As String

Do
lol = reader.ReadLine
If Len(lol) < 1 Then Exit Do
arr = Split(lol, vbNewLine)
For i = 0 To UBound(arr)
If Len(arr(i)) > 0 Then

Try
Dim ftpReq As FtpWebRequest = WebRequest.Create(logftp(0) + dossiersup + "/" + arr(i))
ftpReq.Method = WebRequestMethods.Ftp.DeleteFile
ftpReq.Credentials = New NetworkCredential(logftp(1), logftp(2))
Dim ftpResp As FtpWebResponse = ftpReq.GetResponse
ftpResp.Close()
Catch ex As Exception
lol = Nothing
arr = Nothing
' response2 = Nothing
responseStream = Nothing
End Try

End If
Next
Loop

reader.Close()
response.Close()

''''supdossier

Dim arr2() As String
Dim request2 As FtpWebRequest = WebRequest.Create(logftp(0) + dossiersup)
request2.Credentials = New NetworkCredential(logftp(1), logftp(2))
request2.Method = WebRequestMethods.Ftp.ListDirectory

Dim response2 As FtpWebResponse = request2.GetResponse()
Dim responseStream2 As Stream = response2.GetResponseStream()
Dim reader2 As StreamReader = New StreamReader(responseStream2, System.Text.Encoding.Default)
Dim lol2 As String = ""

arr2 = Nothing
Do
lol2 = reader2.ReadLine
If Len(lol2) < 1 Then Exit Do
arr2 = Split(lol2, vbNewLine)
For i = 0 To UBound(arr2)
If Len(arr2(i)) > 0 Then

Try
Dim ftpReq As FtpWebRequest = WebRequest.Create(logftp(0) + dossiersup + "/" + arr2(i))
ftpReq.Method = WebRequestMethods.Ftp.RemoveDirectory
ftpReq.Credentials = New NetworkCredential(logftp(1), logftp(2))

Dim ftpResp As FtpWebResponse = ftpReq.GetResponse

''''

TextBox5.AppendText(logftp(0) + dossiersup + "/" + arr2(i) + "___DOSSIER SUPPRIMER" & vbCrLf)
TextBox5.Refresh()


Catch ex As Exception

''''

dossiersup = dossiersup + "/" + arr2(i)
TextBox5.AppendText(dossiersup + "___NOUVEAU URI" & vbCrLf)
TextBox5.Refresh()

reader2.Close()
response2.Close()
Call SUPdossier(dossiersup)
End Try

End If
Next
Loop


reader2.Close()
response2.Close()

End Sub


mais sa me retourne une erreur "impossible de lire à partir d'un textreader fermé"

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
21 janv. 2015 à 21:06
L'erreur est montrée sur quelle ligne ?
0
ligne 106 : lol2 = reader2.ReadLine
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 janv. 2015 à 20:54
As-tu vérifié en pas à pas si le Stream étaitdisponible ou pas ?
Peut-être que ta commande échoue et comme tu ne test pas si la réponse est à prendre en compte, tu peux avoir une erreur de ce genre.
0
julie02000 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
23 janv. 2015 à 18:38
j'ai essayer en pas a pas détailler et en pas a pas principal avec f10 et f11 mais sa me retourne le même message d'erreur par contre si je retire : reader2.Close ligne 133 je n'ai plus cette erreur mais il m'ajoute a ma nouvelle url le contenu du même dossier alors qu'il devrais m'ajouter un dossier contenue dans le dossier a supprimer.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 janv. 2015 à 20:01
La ligne que tu cites se trouve dans un bloc catch, quelle est l'exception qui t'emmène à cet endroit ?
0
je fait une 1er liste pour supprimer les fichier dans le dossier une 2em pour supprimer les dossier si il n'arrive pas a supprimer un dossier c la qu'il va dans le bloc catch pour ajouter le nom du dossier a l' url et relance le sub pour supprimer ce dossier et ainsi de suite jusqu'à ce qu'il arrive a supprimer un dossier et la il relance le sub avec le dossier d'origine a supprimer
0
Rejoignez-nous