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

FAQ VBScriptConsultez toutes les FAQ

Nombre d'auteurs : 16, nombre de questions : 108, dernière mise à jour : 2 mars 2019  Ajouter une question

 


Cette FAQ VB Script est le fruit de la collaboration de l'équipe de rédaction et des membres du forum VB.

Aidez-nous à faire vivre cette FAQ en participant au forum Vos contributions VBScript.

Pour toutes questions ou tous problèmes concernant cette FAQ, vous pouvez contacter par MP ThierryAIM ou bbil.

L'équipe de rédaction de Developpez.com vous remercie pour votre participation passée et à venir.

SommaireVB ScriptFichiers : le FileSystemObjectAccès aux Dossiers/Répertoires (9)
précédent sommaire suivant
 

Avec la méthode FolderExists

Code vb : Sélectionner tout
1
2
3
4
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")

Mis à jour le 28 février 2007 SfJ5Rpw8

Une boucle For Each permet d'énumérer l'ensemble des sous-dossiers :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
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

Mis à jour le 28 février 2007 SfJ5Rpw8

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.


Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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

Mis à jour le 27 février 2014 SfJ5Rpw8 Tofalu

Il est possible d'utiliser deux techniques différentes pour créer un dossier :

Depuis le FSO directement

Code vb : Sélectionner tout
1
2
3
4
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

Code vb : Sélectionner tout
1
2
3
4
Dim oFSO,oFld  
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFld=oFSO.GetFolder ("D:\") 
oFld.subFolders.Add("Essai")

Mis à jour le 28 février 2007 SfJ5Rpw8 Tofalu

Il est possible d'utiliser une fonction récursive pour créer une arborescence.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
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

Mis à jour le 5 mai 2008

Il est possible d'utiliser deux techniques différentes pour copier un dossier :

Depuis le FSO directement grâce à la méthode CopyFolder

Code vb : Sélectionner tout
1
2
3
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

Code vb : Sélectionner tout
1
2
3
4
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..

Mis à jour le 28 février 2007 SfJ5Rpw8 Tofalu

Il est possible d'utiliser deux techniques différentes pour effacer un dossier :

Depuis le FSO directement grâce à la méthode DeleteFolder

Code vb : Sélectionner tout
1
2
3
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

Code vb : Sélectionner tout
1
2
3
4
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.

Mis à jour le 28 février 2007 SfJ5Rpw8 Tofalu

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  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

Mis à jour le 27 février 2014 SilkyRoad

Il est possible d'utiliser deux techniques différentes pour déplacer un dossier :

Depuis le FSO directement grâce à la méthode MoveFolder

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

Code vb : Sélectionner tout
1
2
3
4
Dim oFSO,oFld 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
set oFld = oFSO.GetFolder("c:\tmp2") 
oFld.Move "C:\tmp3"

Mis à jour le 28 février 2007 SfJ5Rpw8 Tofalu

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2021 Developpez Developpez LLC. Tous 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.