Hello,
When i'm trying to use root folder (like "c:") as an object (like Ofolder =
fso.GetFolder("C:"), I can't access to its properties like .Files or
.SubFolders. How can I do?
My second problem is when I'm launching my script which is on C:, and it
does a GetFolder command on "c:", then the Path of the object is not "c:" but
the path of the script????
Hereafter is an example of my script:
Option explicit
'*********************************************************************************************************
'* Sous fonctions et procédures
'*********************************************************************************************************
'*******************************************************************************************
'* Sous fonction SmartCopy
'*
'* Copie les répertoires et sous-répertoires
'* avec confirmation utilisateur. Ouvre une fenêtre IE (fichier
SmartCopy.htm).
'*
'* IN
'* Source: String sur le dossier source, sans le / Ã la fin.
'* Destination: String sur le dossier destination, sans le / Ã la
fin.
'* recursif: Entier permettant de savoir si on a un appel recursif
ou non. Doit
'* valoir 1 lors du premier appel.
'* IE: Objet pointant sur la fenêtre de l'internet exploreur pour la
récursivité.
'* Doit valoir 0 lors du premier appel.
'* Nombre_max: Entier indiquant le nombre max de fichiers à copier.
Utilise pour la récursivité.
'* Doit valoir 0 lors du premier appel.
'* Nombre_traite: Entier indiquant le nombre de fichiers déjÃ
copiés. Utilie pour la récursivité.
'* Doit valoir 0 lors du premier appel.
'* IN/OUT
'* Liste_des_fichiers_copies: String contenant la liste des fichiers
copies. Elle peut
'* ne pas être vide lors du premier
appel.
'* Liste_des_fichiers_non_copies: String contenant la liste des
fichiers non copiés.
'* Elle peut ne pas être vide lors du
premier appel.
'*******************************************************************************************
Sub SmartCopy(Source, Destination, _
Liste_des_fichiers_copies,
Liste_des_fichiers_non_copies, recursif, IE, Nombre_max,
Nombre_traite)
'***** Déclarations des variables
Dim SousRep
Dim FicSrc
Dim FicDest
Dim Reponse
Dim Copy_apres_check_date
Dim fso, Chemin
Dim Taille, oDrive
'***** Début du code
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
WshShell.Popup Source & " " & fso.GetFolder(Source).Path
If fso.GetFolder(Source).IsRootFolder Then
Set oDrive = fso.GetFolder(Source).Drive
Taille = oDrive.TotalSize - oDrive.FreeSpace
Else
Taille = fso.GetFolder(Source).Size
End If
Taille = FormatNumber((Taille/(1024*1024)),2)
'***** Calcule le nombre de fichier à copier *******'
Nombre_max = 0
Compte_fichier fso.GetFolder(Source), Nombre_max
Nombre_traite = 0
End Sub
'*******************************************************************************************
'* Sous fonction Compte_fichiers
'*
'* Compte les fichiers d'un dossier.
'*
'* IN
'* Dossier: Objet pointant sur le dossier dont il doit compter les
fichiers.
'* IN/OUT
'* nombre: Entier indiquant le nombre de fichiers comptés. Doit être
initialisé à 0.
'*******************************************************************************************
Sub Compte_fichier(Dossier, nombre)
'***** Déclaration des variables
Dim fso
'***** Début du code
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
Dim SousRep
Dim Fichier
For Each Fichier In Dossier.Files
nombre = nombre + 1
Next
For Each SousRep In fso.GetFolder(Dossier).SubFolders
Compte_fichier SousRep , nombre
Next
End Sub
'*********************************************************************************************************
'*********************************************************************************************************
'*********************************************************************************************************
'* main
'*********************************************************************************************************
'*********************************************************************************************************
'*********************************************************************************************************
Dim WSHShell, fso, WshNet, IE
Set WSHShell = WScript.CreateObject("Wscript.Shell")
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
Set WshNet = Wscript.CreateObject("Wscript.Network")
Set IE = WScript.CreateObject("InternetExplorer.Application")
Dim Liste_des_fichiers_copies, Liste_des_fichiers_non_copies
Dim Chemin
'*******************************************************************************************
'* Début du code
'*******************************************************************************************
SmartCopy "C:" , "J:\Sauvegardes personnelles\Copie de E" , _
Liste_des_fichiers_copies,
Liste_des_fichiers_non_copies, 1, 0, 0, 0