1 2 3 4 5 6 7 8
| If Not (OFS.FolderExists(strFolderName)) Then
allez à la ligne suivante
on déplace chaque fichier du dossier qui a lextension .mdb
For Each File in strFolderName
If File.Extension = "mdb" Then
objFSO.MoveFile File, strTarget
End If
Next |
Tu va être ennuyé si tu fais cela.
Il ne faut pas traiter le cas si n'existe pas alors on passe à la suite, mais en fait dire : si il existe je fais quelque chose sinon rien.
1 2 3 4 5 6 7 8 9 10 11
| Do Until objFile.AtEndOfStream
'........................... le code que tu as avant le if
If (OFS.FolderExists(strFolderName)) Then
on déplace chaque fichier du dossier qui a lextension .mdb
For Each File in strFolderName
If File.Extension = "mdb" Then
objFSO.MoveFile File, strTarget
End If
Next
End If
Loop |
De cette manière si le répertoire existe tu feras ce que tu dois faire et s'il n'existe pas, comme il n'y a pas de else, l'interpréteur du script n'entres pas dans la condition.
Donc si le répertoire n'existe pas tu vas directement au End If. Et donc juste après celui tu fais le loop pour boucler. Alors on recomence le test du do until, et comme tu n'est pas à la fin du fichier tu recommence la boucle.
Donc tu execute ta première instruction :
strLine = objFile.ReadLine
Celle-ci te permet non seulement de lire la ligne en cours, mais en plus, après avoir lu la ligne, un curseur (que tu ne peux pas manipuler directement) se place dans le fichier à la ligne suivante. Et donc lorsque tu referas après cette commande au prochain tour de boucle, tu liras la ligne suivante, et ainsi de suite jusqu'à la fin du fichier.
Amuses à créer un fichier de 5 lignes et applique ce script :
1 2 3 4 5 6 7
| Set OFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\liste.Txt", ForReading)
msgbox objFile.ReadLine
msgbox objFile.ReadLine
msgbox objFile.ReadLine
msgbox objFile.ReadLine
msgbox objFile.ReadLine |
Tu verras qu'il te parcours et t'affiches toutes les lignes sans boucle
Partager