Bonjour à tous !

Je souhaite pouvoir récupérer le nom d'un fichier (pour utilisation en pièce jointe d'un email). qui ce trouve dans un répertoire prédéfini.

Jusqu'à là, je n'ai pas de souci. Cela-dit, le nom du fichier que je dois récupérer change lors que chaque génération (depuis une application tierce).

Les seules info qui sont constantes sont : le début du nom et l'entension ".txt", sachant qu'il n'y peut avoir qu'un seul fichier .txt dans le répertoire en même temps. (puisque archivage dans la suite du script).

Il est évident que des méthodes telles que *.txt ne sont pas valables alors dans l'absolu, j'ai pensé bouclé et pendant la séquence renommer ce fichier avec une autre extension. Mais cela ne fonctionne pas.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
 
Set FileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='c:\'} Where " _
        & "ResultClass = CIM_DataFile")
 
DestFile "Test.xss"
 
 
For Each objFile In FileList
    strDate = Right(objFile.Name, 3)
    If strDate = "txt" Then 
    objFile.Rename(DestFile)
	    End If
Set objFile = Nothing	    
Next
Ni d'ailleurs avec cette manière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set FileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='c:\'} Where " _
        & "ResultClass = CIM_DataFile")
 
 
For Each objFile In FileList
    If objFile.Extension = "txt" Then
        strNewName = "test" & Day(Date) & ".txt"
 
         errResult = objFile.Rename(strNewName)
    End If
Next
J'espère que quelqu'un pourra m'aider.

Merci d'avance.

John