IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment savoir si un fichier existe ?
If Dir("c:\temp\Erreurs.tmp", vbHidden) <> "" Then
    'le fichier existe (vbHidden permet de le retrouver même s'il est caché)
End If

Comment copier un fichier ?
'Copie le fichier "c:\temp\Erreurs.tmp" en "c:\temp\Erreurs.bak"
FileCopy "c:\temp\Erreurs.tmp", "c:\temp\Erreurs.bak"

Comment renommer un fichier ou un répertoire?
'Renomme "c:\temp\Erreurs.tmp" en "c:\temp\Erreurs.bak"
Name "c:\temp\Erreurs.tmp" As "c:\temp\Erreurs.bak"
'Renomme le répertoire "c:\temp" en "c:\var"
Name "c:\temp" As "c:\var"

Comment détruire un fichier ?
Kill "c:\Erreurs.tmp"
Le fichier doit exister sinon une erreur d'exécution a lieu.

Comment copier un répertoire ?
Ce source copie le contenu du répertoire c:\sources dans le répertoire c:\oldsources. Passer la valeur True en troisième paramètre de CopyFolder indique que les fichiers existants devront être écrasés.
Dim fso As FileSystemObject
Set fso = New FileSystemObject
fso.CopyFolder "c:\sources", "c:\oldsources", True
Set fso = Nothing

Comment obtenir le contenu d'un répertoire ?
Dim rep As String
'obtient le premier fichier ou répertoire qui est dans "c:\"
rep = Dir("c:\*.*", vbDirectory)
'boucle tant que le répertoire n'a pas été entièrement parcouru
Do While (rep <> "")
    'teste si c'est un fichier ou un répertoire
    If (GetAttr("c:\" & rep) And vbDirectory) = vbDirectory Then
        MsgBox "Répertoire " & rep
    Else
        MsgBox "Fichier " & rep
    End If
    'passe à l'élément suivant
    rep = Dir
Loop

Comment supprimer un répertoire ?
Avec RmDir, mais vous ne pouvez l'utiliser que pour supprimer des répertoires vides.
RmDir "c:\temp"
Pour supprimer un répertoire qui contient fichiers ou répertoires, utilisez le FileSystemObject, qui est disponible seulement si vous avez inclus la librairie Microsoft Scripting Runtime dans les références de votre projet.
Dim fso as FileSystemObject
Set fso = New FileSystemObject
fso.DeleteFolder "c:\temp", True
La valeur True passée au deuxième paramètre permet de supprimer le répertoire dans le cas où il aurait l'attribut lecture seule. Ce paramètre est optionnel, et a la valeur False par défaut.

Comment ouvrir une fenêtre de sélection de répertoire ?
Pour cela vous devez ajouter ces déclarations au début de votre module :
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
    ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _ 
    ByVal lpString2 As String) As Long

Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
     ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type
La fonction suivante ouvre la fenêtre de sélection de répertoire standard de Windows et renvoie le chemin du répertoire sélectionné. Les paramètres attendus sont le titre à afficher et l'identifiant de la fenêtre parente.
Private Function SelectFolder(Titre As String, Handle As Long) As String

Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo

strTitre = Titre
With tBrowseInfo
    .hWndOwner = Handle
    .lpszTitle = lstrcat(strTitre, "")
    .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With

lpIDList = SHBrowseForFolder(tBrowseInfo)

If (lpIDList) Then
    strBuffer = String(260, vbNullChar)
    SHGetPathFromIDList lpIDList, strBuffer
    SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If

End Function
Cette ligne fait appel à la fonction écrite ci-dessus pour ouvrir la fenêtre de sélection de répertoire et afficher le répertoire sélectionné :
MsgBox SelectFolder("Sélectionnez un répertoire :", Me.hWnd)

Quelle référence dois-je ajouter à mon projet pour pouvoir utiliser le FileSystemObject ?
Ajoutez la librairie Microsoft Scripting Runtime. Le fichier correspondant se nomme scrrun.dll


Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduit en français ici.
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.