Fonctions utiles sur les fichiers et dossiers avec windows scripting host

Contenu du snippet

Le code requiert l'installation de Windows Scripting.
Plateforme supportées:
Windows Server 2003 Oui
Windows XP Oui
Windows 2000 Oui
Windows NT 4.0 Oui
Windows 98 Oui, avec Windows Script Host installé

Source / Exemple :


1. Comment supprimer un fichier

loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.DeleteFile("D:\ARCHIVE\software.txt")

2. Comment copier un fichier

#define OverwriteExisting  .t.
loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.CopyFile("C:\scripts\software.txt" , "D:\Archive\", OverwriteExisting ) 

3. Comment copier plusieurs fichiers

#define OverwriteExisting  .t.
loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.CopyFile("C:\scripts\*.txt" , "D:\Archive\" , OverwriteExisting)

4. Comment supprimer plusieurs fichiers dans un dossier

#define DeleteReadOnly  .t.
loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.DeleteFile("C:\FSO\*.txt"), DeleteReadOnly)

5. Comment énumérer tous les fichiers dans un dossier

lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFiles = loWMIService. ;
ExecQuery("Select * from CIM_DataFile where Path = '\\Scripts\\'")
For Each loFile in colFiles
?loFile.Name
Next

6. Comment énumérer tous le fichiers sur un ordinateur. ATTENTION ceci peut prendre beaucoup de temps.

lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFiles = loWMIService.ExecQuery ;
("Select * from CIM_Datafile")
For Each loFile in colFiles
?loFile.Name
Next

7. Comment énumérer les fichiers avec une condition. Grosseur du fichier

clear
lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFiles = loWMIService. ;
ExecQuery("Select * from CIM_DataFile where FileSize > 1000000")
For Each loFile in colFiles
?loFile.Name + " -- " + loFile.FileSize
Next

8. Déplacer un fichier 

loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.MoveFile( "C:\FSO\ScriptLog.log" , "D:\Archive")

9. Déplacer plusieurs fichiers

loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.MoveFile( "C:\FSO\*.txt" , "D:\Archive\")

10. Renommer un fichier. 

loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.MoveFile ("C:\FSO\ScriptLog.txt" , "C:\FSO\BackupLog.txt")

11. Obtenir la version d'un fichier (pour les fichier qui contienne une version)

loFSO = CreateObject("Scripting.FileSystemObject")
?loFSO.GetFileVersion("c:\windows\system32\scrrun.dll")

12. Énumérer les fichiers dans un dossier

#define FILE_NAME  0
loShell = CreateObject ("Shell.Application")
loFolder = loShell.Namespace ("C:\Scripts")
For Each lcFileName in loFolder.Items
?"File name: " + loFolder.GetDetailsOf ;
(lcFileName, FILE_NAME)
Next

13. Déterminer si un fichier existe dans un dossier.

On Error Do nofile
loFSO = Createobject("Scripting.FileSystemObject")
If loFSO.FileExists("C:\FSO\ScriptLog.txt")
	loFolder = loFSO.Getfile("C:\FSO\ScriptLog1.txt")
Else
	?""Le fichier n'existe pas."
Endif
Procedure nofile
?"Le fichier n'existe pas."
Endproc

14. Changer les attributs d'un dossier.

loFSO = Createobject("Scripting.FileSystemObject")
loFolder = loFSO.GetFolder("C:\FSO")
If loFolder.Attributes =  16
	loFolder.Attributes = 34
Endif

15. Copier un dossier. (Version 1)

#define OverWriteFiles  .t.
loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.CopyFolder ("C:\Scripts" , "C:\FSO" , OverWriteFiles)

16. Copier un dossier (Version 2)

loShell = CreateObject("Shell.Application")
loFolder = loShell.NameSpace(ParentFolder)
loFolder.CopyHere( "C:\Scripts")

17. Copier un dossier (Version 3)

lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFolders = loWMIService.ExecQuery( ;
"Select * from Win32_Directory where Name = 'c:\\Scripts'")
For Each loFolder in colFolders
errResults  = loFolder.Copy("D:\Archive")
?errResults
Next

18. Créer un dossier. (Version 1)

loFSO = CreateObject("Scripting.FileSystemObject")
loFolder = loFSO.CreateFolder("C:\FSO")

19. Créer un dossier. (Version 2)

ParentFolder = "C:\"
loShell = CreateObject("Shell.Application")
loFolder = loShell.NameSpace(ParentFolder)
loFolder.NewFolder("Archive")

20. Supprimer un dossier. (Version 1)

loFSO = CreateObject("Scripting.FileSystemObject")
loFSO.DeleteFolder("C:\FSO")

21 Supprimer un dossier (Version 2)

lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFolders = loWMIService.ExecQuery ;
("Select * from Win32_Directory where Name = 'c:\\Scripts'")
For Each loFolder in colFolders
errResults = loFolder.Delete
?errResults
Next

22. Énumérer tous les dossiers et sous-dossiers sur un ordinateur. ATTENTION peut etre long.

lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFolders = loWMIService.ExecQuery("Select * from Win32_Directory")
For Each loFolder in colFolders
?loFolder.Name
Next

23. Énumérer seulement les dossiers cachés

lcComputer = "."
loWMIService = GetObject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colFiles = loWMIService.ExecQuery ;
("Select * from Win32_Directory Where Hidden = .t.")
For Each loFile in colFiles
?loFile.Name
Next

24. Énumérer les attributs d'un dossier.

loFSO = Createobject("Scripting.FileSystemObject")
loFolder = loFSO.GetFolder("C:\FSO")
If loFolder.Attributes = 2
	?"Dossier caché."
Endif
If loFolder.Attributes = 4
	?"Dossier systeme."
Endif
If loFolder.Attributes = 16
	?"Dossier regulier."
Endif
If loFolder.Attributes = 32
	?"Archive bit set."
Endif
If loFolder.Attributes = 2048
	?"Dossier compressé."
Endif

25. Énumérer le propriétés d'un dossier.

loFSO = CreateObject("Scripting.FileSystemObject")
loFolder = loFSO.GetFolder("C:\Scripts")
?"Date crée: " + TRANSFORM(loFolder.DateCreated)
?"Dernière fois accédé: " + transf(loFolder.DateLastAccessed)
?"Dernière fois accédé: " + transf(loFolder.DateLastModified)
?"Dossier de racine: " + transf(loFolder.IsRootFolder)
?"Nom: " + transf(loFolder.Name)
?"Chemin: " + transf(loFolder.Path)
?"Nom court: " + transf(loFolder.ShortName)
?"Chemin court: " + transf(loFolder.ShortPath)
?"Taille: " + transf(loFolder.Size)
?"Type: " + transf(loFolder.Type)

26. Énumérer le nom et la taille des sous-dossiers dans un dossier.

CLEAR
loFSO = CreateObject("Scripting.FileSystemObject")
loFolder = loFSO.GetFolder("C:\FSO")
colSubfolders = loFolder.Subfolders
For Each loSubfolder in colSubfolders
?'Nom :'+loSubfolder.Name,'Taille :'+ TRANSFORM(loSubfolder.Size)
Next

27. Créer un fichier basé sur un nom temporaire généré automatiquement.

loFSO = CreateObject("Scripting.FileSystemObject")
lcPath = "C:\FSO"
lcFileName = loFSO.GetTempName
lcFullName = loFSO.BuildPath(lcPath, lcFileName)
loFile = loFSO.CreateTextFile(lcFullName)
loFile.Close
loFSO.DeleteFile(lcFullName)

28. Créer un fichier texte.

loFSO = CreateObject("Scripting.FileSystemObject")
loFile = loFSO.CreateTextFile("C:\FSO\ScriptLog.txt")

29. Générer des noms de fichier (temporaire)

loFSO = CreateObject("Scripting.FileSystemObject")
For i = 1 to 10
lcTempFile = loFSO.GetTempName
?lcTempFile
Next

30. Lire un fichier texte charactère par charactère.

loFSO = Createobject("Scripting.FileSystemObject")
loFile = loFSO.OpenTextFile("C:\monfichier.txt", 1)
Do While!loFile.AtEndOfStream
	lcCharacters = loFile.Read(1)
	?lcCharacters
Enddo

31. Lire le contenu d'un fichier texte.

#define ForReading  1
loFSO = CreateObject("Scripting.FileSystemObject")
loTextFile = loFSO.OpenTextFile("c:\lftoct.txt", ForReading)
lcResponses = loTextFile.ReadAll
?lcResponses
loTextFile.Close

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.