Page 1 sur 1

ouvrir le fichier le plus récent

Posté : mar. 11 juin 2019 20: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 20: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 20: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 20: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 20: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 22: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 08: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