Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment tester l'existence d'un répertoire ?
auteur : bbil
Avec la méthode FolderExists
Dossier Existe

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
MsgBox "C:\Program Files\Fichiers communs >> " & oFSO.FolderExists("C:\Program Files\Fichiers communs")
MsgBox "C:\Program Files\Fichiers communs\RepBidon >> " & oFSO.FolderExists("C:\Program Files\Fichiers communs\RepBidon")

Comment lister les sous répertoires d'un dossier ?
auteur : bbil
Une boucle For Each permet d'énumérer l'ensemble des sous-dossiers :
listes des sous-dossiers

Dim stRep 'Nom du répertoire à parcourir
Dim oFSO,oFld
Set oFSO = CreateObject("Scripting.FileSystemObject")
stRep = "C:\Program Files\Fichiers communs"
If oFSO.FolderExists(stRep) Then
 For each oFld in  oFSO.GetFolder(stRep).SubFolders
   Wscript.Echo oFld.Name	
 Next
End If

Comment obtenir des informations sur un dossier ?
auteurs : Tofalu, bbil
Les propriétés de l'objet Folder
  • Attributes : attributs du dossier.
    • 0 : Normal. Aucun attribut n'est défini.
    • 1 : ReadOnly : Dossier en lecture seule (attribut en lecture/ecriture)
    • 2 : Hidden : Dossier caché (attribut en lecture/ecriture)
    • 4 : System : Dossier système (attribut en lecture/ecriture)
    • 32 : Archive : Dossier archivé (attribut en lecture/ecriture)
    • 2048 : Compressed : Dossier compress (attribut en lecture seule)
  • DateCreated : Date de création du dossier
  • DateLastAccessed : Date du dernier accès au dossier
  • DateLastModified : Date de dernière modification
  • Drive : Lettre désignant l'unité de disque d'où est issu le dossier.
  • Files : Collection regroupant les fichiers du dossier
  • IsRootFolder : Booléen qui définit si le dossier est le dossier racine de son unité de disque.
  • Name : Nom du dossier. Exemple : Windows (propriété en lecture/ecriture)
  • ParentFolder : Objet Folder correspondant au dossier parent. Si le dossier est un dossier RootFolder cette propriété retourne Nothing.
  • Path : Chemin complet d'accès au dossier. Exemple : D:\Windows
  • ShortName : Nom court sur 8 caractères maximum. Exemple ESSAI1~1
  • ShortPath : Chemin complet d'accès au dossier où chaque composant respecte la norme évoquée pour ShortName. Exemple D:\ABCDEF1~1\ ESSAI1~1
  • Size : Taille totale du dossier en octets. Il s'agit de la somme de la taille de tous les fichiers présents dans le dossier et ses sous-dossiers.
  • SubFolders : Collection d'objet Folder regroupant les sous-dossiers.
  • Type : Type du dossier. Dans tous les cas testés, il s'agit de FileFolder.

Dim stRep 'Nom du répertoire à parcourir
Dim oFSO,oFld
Set oFSO = CreateObject("Scripting.FileSystemObject")
stRep = "C:\Program Files\Fichiers communs"
If oFSO.FolderExists(stRep) Then
Set oFld = oFSO.GetFolder(stRep)
  MsgBox "Attributes  :" & oFld.Attributes  & vbCrlf & _ 
         "DateCreated :" & oFld.DateCreated  & vbCrlf & _ 
         "DateLastAccessed :" & oFld.DateLastAccessed  & vbCrlf & _ 
         "DateLastModified :" & oFld.DateLastModified  & vbCrlf & _ 
         "Drive :" & oFld.Drive  & vbCrlf & _ 
         "IsRootFolder :" & oFld.IsRootFolder  & vbCrlf & _ 
         "Name :" & oFld.Name  & vbCrlf & _ 
         "ParentFolder :" & oFld.ParentFolder  & vbCrlf & _ 
         "Path :" & oFld.Path  & vbCrlf & _ 
         "ShortName :" & oFld.ShortName  & vbCrlf & _ 
         "ShortPath :" & oFld.ShortPath  & vbCrlf & _ 
         "Size :" & oFld.Size  & vbCrlf & _ 
         "SubFolders.Count :" & oFld.SubFolders.count  & vbCrlf & _ 
         "Type :" & oFld.Type  

End If

Comment créer un répertoire ?
auteurs : Tofalu, bbil
Il est possible d'utiliser deux techniques différentes pour créer un dossier :
Depuis le FSO directement

Dim oFSO,oFld 
Set oFSO = CreateObject("Scripting.FileSystemObject")
'Crée le repertoire
Set oFld=oFSO.CreateFolder ("D:\Essai")
où en rajoutant un élément à la collection SubFolders

Dim oFSO,oFld 
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFld=oFSO.GetFolder ("D:\")
oFld.subFolders.Add("Essai")

Comment créer une arborescence ?
auteur : Forum
Il est possible d'utiliser une fonction récursive pour créer une arborescence.
Option Explicit
Dim ofso
Set ofso = CreateObject("Scripting.FileSystemObject")
 
CreerRep("c:\data\toto\titi\")
 
Sub CreerRep(Chemin)
	If Not ofso.FolderExists(chemin) Then
		CreerRep(ofso.GetParentFolderName(chemin))
		ofso.CreateFolder(chemin)
	End If
End Sub

Comment copier un répertoire et son contenu ?
auteurs : Tofalu, bbil
Il est possible d'utiliser deux techniques différentes pour copier un dossier :
Depuis le FSO directement grâce à la méthode CopyFolder

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CopyFolder "c:\tmp","c:\tmp2",True ' True : pour copier en "écrasant" destination si existe..
où en utilisant la méthode copy de l'objet Folder

Dim oFSO,oFld
Set oFSO = CreateObject("Scripting.FileSystemObject")
set oFld = oFSO.GetFolder("c:\tmp")
oFld.Copy "c:\tmp2",True ' True : pour copier en "écrasant" destination si existe..

Comment effacer un répertoire et son contenu ?
auteurs : Tofalu, bbil
Il est possible d'utiliser deux techniques différentes pour effacer un dossier :
Depuis le FSO directement grâce à la méthode DeleteFolder

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFolder "c:\tmp2",True  ' Le paramétre "Force" à true permet d'effacer les fichiers en lectures seules.
où en utilisant la méthode delete de l'objet Folder

Dim oFSO,oFld
Set oFSO = CreateObject("Scripting.FileSystemObject")
set oFld = oFSO.GetFolder("c:\tmp2")
oFld.Delete False ' Le paramétre "Force" à False n'autorise pas d'effacer les fichiers et répertoires  en lectures seules.
les deux méthodes prennent en dernier paramètre le paramètre "Force" qui à "True" permet d'effacer les fichiers en lecture seule.


Comment déplacer un répertoire et son contenu ?
auteurs : Tofalu, bbil
Il est possible d'utiliser deux techniques différentes pour déplacer un dossier :
Depuis le FSO directement grâce à la méthode MoveFolder

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.MoveFolder "c:\tmp2","c:\tmp3"
où en utilisant la méthode move de l'objet Folder

Dim oFSO,oFld
Set oFSO = CreateObject("Scripting.FileSystemObject")
set oFld = oFSO.GetFolder("c:\tmp2")
oFld.Move "C:\tmp3"

Comment compresser un dossier ?
auteur : SilkyRoad
VBS

  Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim Source, Destination, MyHex, MyBinary, i
Dim oShell, oApp, oFolder, oCTF, oFile
Dim oFileSys

Source = "C:\Temp"
Destination = "C:\maSauvegarde.zip"

MyHex = _
Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

For i = 0 To UBound(MyHex)
    MyBinary = MyBinary & Chr(MyHex(i))
Next

Set oShell = CreateObject("WScript.Shell")
Set oFileSys = CreateObject("Scripting.FileSystemObject")

'Creation du zip
Set oCTF = oFileSys.CreateTextFile(Destination, True)
oCTF.Write MyBinary
oCTF.Close
Set oCTF = Nothing

Set oApp = CreateObject("Shell.Application")

Set oFolder = oApp.NameSpace(Source)
If Not oFolder Is Nothing Then _
    oApp.NameSpace(Destination).CopyHere oFolder.Items

wScript.Sleep 5000

Set oFile = Nothing
On Error Resume Next

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com