Suppr.de dossier...viite!!

kamykas07 - 2 juil. 2001 à 22:42
cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 - 16 juil. 2003 à 17:38
voilà mon probleme..
je sais comment on supprime un fichier...
mais..voilà la question, comment on supprime un dossier depuis vb

je sais que ça a l'aire tout con mais bon....j'y peux rien ..je débute..je vous remerci d'avance :)

5 réponses

Tu peux toujours y allez avec la fonction RmDir de VB mais elle ne supprime que les dossier vide, qui ne contient aucun fichiers n'y sous-dossiers, ...

Pour supprimer un répertoire tu peux utiliser une API
Exemple avec l'API SHFileOperation

Tu peux coller le code d'une form par exemple

'Le type
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type

' Déclaration de l'API
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

' Les constantes
Public Const FO_COPY = &H2
Public Const FO_DELETE = &H3
Public Const FO_MOVE = &H1
Public Const FO_RENAME = &H4

Public Const FOF_ALLOWUNDO = &H40
Public Const FOF_CONFIRMMOUSE = &H2
Public Const FOF_FILESONLY = &H80
Public Const FOF_MULTIDESTFILES = &H1
Public Const FOF_NO_CONNECTED_ELEMENTS = &H2000
Public Const FOF_NOCONFIRMATION = &H10
Public Const FOF_NOCONFIRMMKDIR = &H200
Public Const FOF_NOCOPYSECURITYATTRIBS = &H0800
Public Const FOF_NOERRORUI = &H0400
Public Const FOF_NORECURSION = &H1000
Public Const FOF_RENAMEONCOLLISION = &H8
Public Const FOF_SILENT = &H4
Public Const FOF_SIMPLEPROGRESS = &H100
Public Const FOF_WANTMAPPINGHANDLE = &H20
Public Const FOF_WANTNUKEWARNING = &H4000

' La fonction
Public Function DeleteDirectory(ByVal DirectoryName As String) As Long

Dim FO As SHFILEOPSTRUCT

With FO

.hWnd = 0
.pFrom = DirectoryName
.fFlags = FOF_SIMPLEPROGRESS + FOF_ALLOWUNDO
.wFunc = FO_DELETE

End With

DeleteDirectory = SHFileOperation(FO)

' Pour savoir si l'opération à été aborder:
'
' If FO.fAborted = True Then
' Opération annuler
' End If

End Function

Le nom du répertoire en paramètre doit ce terminer comme ceci: \*.*

C:\Mes documents\*.*
(c un exemple)

Exemple:

If DeleteDirectory("C:\Mes documents\*.*") = 0 Then
' Opération réussi !
Else
' Échec
End If

En cas de problème avec ce code ou autres,
[mailto:NitRic28@Hotmail.com NitRic]
0
Pfffiouu pourquoi faire compliqué quan on peut faire suimple (surtout en programmation)? hein?

Bon alors va dans projet, clic sur références et coche Microsoft Scripting Runtime

ensuite vola le code:
dim fso,r
set fso=CreateObject("Scripting.FileSystemObject")
r=fso.deletefolder("chemin du dossier")

@+
0
J'ai utiliser une API(SHFileOperation) dans l'exemple parce qu'il va pouvoir voir la progression de la suppression de son répertoire, avec le FileSystemObject on ne voit rien... c'est utile quand on à de gros répertoire à supprimer, en plus on peut choisir si on veut supprimer définitivement le répertoire ou simplement l'envoyer à la corbeille, on peut aussi annuler la suppression, etc... bref moi je préfère l'API SHFileOperation...

[mailto:NitRic28@Hotmail.com NitRic]
0
tout a fait d'accord avec toi
mais moi j'ai toujours eu de petits répertoires à supprimer/déplacer
alors j'ai toujours utilisé le fso
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 1
16 juil. 2003 à 17:38
Moi j'ai une petite question: Comment on fait pour le DEPLACER le dossier? Si quelqu'un pouvait me repondre ca serait cool. Merci d'avance!
0
Rejoignez-nous