Supprimer un dossier avec ces sous-dossier sur un serveur
julie02000
-
21 janv. 2015 à 20:42
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 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
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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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.
julie02000
>
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 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.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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 ?
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
21 janv. 2015 à 22:32
22 janv. 2015 à 20:54
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.
23 janv. 2015 à 18:38
23 janv. 2015 à 20:01
23 janv. 2015 à 20:17