Page 1 sur 1
ouvrir le fichier le plus récent
Posté : mar. 11 juin 2019 21:27
par yohanb767
Bonjour à tous
j'aurai besoin de conseil ou du moins une piste pour ce que j'aimerai inclure dans un de mes script
j'aimerai dans une liste de fichier excel récupérer le fichier le plus récent sachant qu'il ne sera pas forcement à la date du jour
merci d'avance pour votre aide
Re: ouvrir le fichier le plus récent
Posté : mar. 11 juin 2019 21:39
par mikell
FileListToArray + boucle avec FileGetTime (param format = 1) et comparaison ?
Re: ouvrir le fichier le plus récent
Posté : mar. 11 juin 2019 21:47
par yohanb767
merci mikell
je dois comparais tous les fichiers c'est ça?
Re: ouvrir le fichier le plus récent
Posté : mar. 11 juin 2019 21:52
par mikell
Ben oui
Le format YYYYMMDDHHMMSS permet dans la boucle de comparer avec la date du fichier précédent
Attention il vaut mieux utiliser Number("YYYYMMDDHHMMSS") parce que c'est une string qui est retournée
Re: ouvrir le fichier le plus récent
Posté : mar. 11 juin 2019 21:55
par yohanb767
merci mikell , je vais chercher comment faire tout ce que tu m'a dis ! pas sur que j'y arrive car je n'ai jamais fais ça et je suis encore débutant mais ca me donne une piste
Re: ouvrir le fichier le plus récent
Posté : mar. 11 juin 2019 23:34
par Tlem
Bonsoir.
Une autre solution basée sur l'exemple de la commande
StdoutRead()
en utilisant la commande DIR et quelques commutateurs.
Code : Tout sélectionner
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
$sFilePath = "D:\Fichiers" ; <= Chemin de la recherche.
$sFilter = "*.xls" ; <= Masque de recherche
$sFilePath = StringRegExpReplace($sFilePath, "[\\/]+\z", "") & "\"
; Pour inverser le tri et donc obtenir le fichier le plus vieux remplacer le paramètre /OD par /O-D
; Pour faire de la recherche récursive dans les sous dossiers, rajouter le paramètre /S
$iPID = Run(@ComSpec & ' /C DIR "' & $sFilePath & $sFilter & '" /B /OD /A-D', $sFilePath, @SW_HIDE, $STDOUT_CHILD) ; Tri Croissant
ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
$aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), 1), @CRLF)
If @error Then
MsgBox($MB_ICONERROR + $MB_SYSTEMMODAL, "", "Pas de fichier.")
Else
MsgBox($MB_SYSTEMMODAL, "Fichier le plus récent :", $aArray[$aArray[0]])
EndIf
Re: ouvrir le fichier le plus récent
Posté : mer. 12 juin 2019 09:24
par yohanb767
Merci thierry !
je garde ton exemple et l'adapte à mon script de suite , la fonction StdoutRead est parfaite
merci encore
Bonne journée à toi