Supprimer 2 dossiers

Supprimer 2 dossiers - VB/VBA/VBS - Programmation

Marsh Posté le 20-12-2006 à 13:44:53    

Comment je fais pour supprimer par exemple 2 dossier vide en ne sachant que le début de son nom :
 
Exemple mes deux dossiers s'appellent :  
mop-234234132
mop-57654535
 
J'ai essayé cela, mais ça ne fonctionne pas  
 
rmdir D:\test\mop*
 
Aidez-moi svp !!!!!

Reply

Marsh Posté le 20-12-2006 à 13:44:53   

Reply

Marsh Posté le 20-12-2006 à 14:28:05    

Une réponse en VBA qu'il te faudra adapter


'==================================================================================
'
'   Dans environnement VBA
'   Outils | Références COCHER Microsoft Scripting Runtime
 
'==================================================================================
 
Option Explicit
Const Dossier As String = "C:\Transfert\Essais\"
 
Sub Tst()
Dim DossierOk As String
    DossierOk = Dossier
    If Right(DossierOk, 1) <> "\" Then DossierOk = DossierOk & "\"
     
    EffacerTout DossierOk, True
    'EffacerSeulement DossierOk, True, "xls"
End Sub
 
Private Sub EffacerTout(ByVal Dossier As String, ByVal InclureSousDossiers As Boolean)
Dim FSO As Scripting.FileSystemObject
Dim DossierSource As Scripting.Folder, SousDossier As Scripting.Folder
Dim Fichier As Scripting.File
 
    Set FSO = New Scripting.FileSystemObject
    Set DossierSource = FSO.GetFolder(Dossier)
     
    For Each Fichier In DossierSource.Files
        Fichier.Delete
    Next Fichier
     
    If InclureSousDossiers Then
        For Each SousDossier In DossierSource.SubFolders
            EffacerTout SousDossier.Path, True
            If SousDossier.Files.Count = 0 Then SousDossier.Delete
        Next SousDossier
    End If
     
    Set Fichier = Nothing
    Set DossierSource = Nothing
    Set FSO = Nothing
End Sub
 
Private Sub EffacerSeulement(ByVal Dossier As String, ByVal InclureSousDossiers As Boolean, ByVal Extension As String)
Dim FSO As Scripting.FileSystemObject
Dim DossierSource As Scripting.Folder, SousDossier As Scripting.Folder
Dim Fichier As Scripting.File
 
    Set FSO = New Scripting.FileSystemObject
    Set DossierSource = FSO.GetFolder(Dossier)
     
    For Each Fichier In DossierSource.Files
        If UCase(FSO.GetExtensionName(Fichier)) = UCase(Extension) Then
            Fichier.Delete
        End If
    Next Fichier
     
    If InclureSousDossiers Then
        For Each SousDossier In DossierSource.SubFolders
            EffacerSeulement SousDossier.Path, True, Extension
            If SousDossier.Files.Count = 0 Then SousDossier.Delete
        Next SousDossier
    End If
     
    Set Fichier = Nothing
    Set DossierSource = Nothing
    Set FSO = Nothing
End Sub

Reply

Marsh Posté le 20-12-2006 à 14:32:24    

Merci tu n'as pas par hasard en VB.net, c'est ça que je cherche,,,
 
Mais merci de m'avoir répondu, c'est coool !!!

Reply

Marsh Posté le 20-12-2006 à 14:38:01    

Il faudrait préciser le langage dans l'entête [Vb Net] par exemple
vas voir sur http://www.vb-helper.com/index_vbnet.html

Reply

Marsh Posté le 20-12-2006 à 14:39:46    

Merci je vais faire un tour ;-))))

Reply

Marsh Posté le 20-12-2006 à 14:46:00    

Il y a aussi par exemple http://www.vbdotnetheaven.com/Uplo [...] 236e2171eb


Message édité par kiki29 le 20-12-2006 à 14:48:15
Reply

Marsh Posté le 20-12-2006 à 15:26:02    

Ton exemple ne fonctionne pas très bien, car je n'arrive pas à supprimer 2 dosser en même temps, avec un ça joue nickel, mais avec 2 dossiers mon prog plantent

Reply

Marsh Posté le 20-12-2006 à 15:29:02    

Lequel d'exemple ?

Reply

Marsh Posté le 20-12-2006 à 15:32:52    

Celui ci. Ce code fonctionne seulement avec un dossier
 
Imports System.IO
Friend Class TestDirectory
Public Shared Sub Main()
Directory.Delete("C:\dump" )
End Sub
End Class

Reply

Marsh Posté le 20-12-2006 à 15:39:13    

Désolé mais je n'ai plus vb.net actuellement sur mon PC

Reply

Marsh Posté le 20-12-2006 à 15:39:13   

Reply

Marsh Posté le 20-12-2006 à 15:51:33    

C'est pas grave, mais merci d'y avoir pensé...
 
Bonne journée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed