Vinsaille
Messages postés39Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention18 juin 2008
-
18 juin 2008 à 11:39
Vinsaille
Messages postés39Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention18 juin 2008
-
18 juin 2008 à 16:35
Bonjour,
Voilà je cherche à trier les fichiers dans un répertoire, leur extension est .csv, j'aimerai les classer par ordre chronologique.
J'ai trouvé ce code sur le net:
Imports Microsoft.VisualBasic
'Récupère une liste de fichiers
Dim MyFiles As String() = System.IO.Directory.GetFiles("C:\UnRepertoire", "*")
'Liste trièe contenant les noms des fichiers
dim mLst as new System.Collections.SortedList
'Si fichiers trouvés
If MyFiles IsNot Nothing Then
'Tri les fichiers par date du plus ancien au plus récent
Dim i as Integer
For i = 0 To MyFiles.Length - 1
Dim CurrentDate As Date = New IO.FileInfo(MyFiles(i)).LastWriteTime
mLst.Add(Format(CurrentDate,"yyyy.MM.dd.hh.mm.ss"),MyFiles(i))
Next
End if
'Pour récupérer les fichier le plus ancien, prendre le premier élément. Pour le plus récent, le dernier.
Donc j'ai adapter les variables pour mon appli, cependant il dit que pour selectionner le fichier le plus récent, il faut séléctionner le dernier ... moi j'ai mis :
Dim fichier As String = MyFiles(MyFiles.Length - 1
).ToString
Comme ça j'ai le chemin du fichier (c:\....)
Mais ça ne marche pas vrmt, ça selectionne un peu au pif :(
Ca vient du code qui serait bidon, on c'est moi qui pige pas le truc...?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 18 juin 2008 à 16:02
Une SortedList n'est accessible que par clé, et non par index. Donc mLst.Item(MyFiles.Length - 1) ne fonctionne pas.
Essaie ça:
' Lister les fichiers du dossier
Dim myFiles As String() = System.IO.Directory.GetFiles("C:", "*")
' Trouver les dates de dernières modifications des fichiers
Dim myDates(myFiles.Length - 1) As Date
For i As Integer = 0 To myFiles.Length - 1
myDates(i) = New IO.FileInfo(myFiles(i)).LastWriteTime
Next
' Classer la liste des fichiers en fonction des dates
Array.Sort(myDates, myFiles)
' myFiles est maintement classé par date :
Dim PlusRecent As String = myFiles(myFiles.Length - 1)
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 18 juin 2008 à 15:27
Salut,
C'est dans ta liste mLst que les fichiers sont classé, pas dans MyFiles. Il faut donc récupérer le dernier élément de mLst pour avoir le fichier le plus récent.
Vinsaille
Messages postés39Date d'inscriptionmercredi 6 juin 2007StatutMembreDernière intervention18 juin 2008 18 juin 2008 à 16:35
Et bien écoute ça à l'air de marcher ce que tu as fait !
Je t'avoue que je n'ai pas tout compris, je vais revoir tout car j'aime pas faire les choses sans comprendre .