Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

trie sur dates

5 réponses
Avatar
Dan
Bonjour a tous.


Dans un listviever je mets en premiere colonne la date de création de mon
fichier et en segonde colonne le nom de ce fichier.
malheureusement le tri semble se faire sur jour mois an et pas sur AN
mois jour.
coment proceder pour mettre ma date sous la bonne forme dans Listviewer?

Voici mon code:

If File.Exists(Entree) Then 'Si c'est un fichier
Dim LVI As New ListViewItem
Dim Dateg = FileDateTime(chemin & TmpName)
'conversion sous forme an mois jour h mm ss
' Dim DateF = Dateg.ToString("yyyy MM d hh mm ss")

LVI.Text = Dateg.ToString 'première cellule
'ajout de la ligne
LVI.SubItems.Add((TmpName).ToString) 'seconde cellule
listbox.Items.Add(LVI)
End if

d'avance merci de votre aide

5 réponses

Avatar
Dan
Bonjour a tous.
J'ai trouvé" la solution ,il me reste une seconde qyestion.
Sans liste viewer coment creer une teble de la liste de mes fichiers JPG
triée sur la date de création?
D"avance merci de votre aide .




"Dan" a écrit dans le message de
news:49fb6b94$0$291$
Bonjour a tous.


Dans un listviever je mets en premiere colonne la date de création de
mon fichier et en segonde colonne le nom de ce fichier.
malheureusement le tri semble se faire sur jour mois an et pas sur AN
mois jour.
coment proceder pour mettre ma date sous la bonne forme dans Listviewer?

Voici mon code:

If File.Exists(Entree) Then 'Si c'est un fichier
Dim LVI As New ListViewItem
Dim Dateg = FileDateTime(chemin & TmpName)
'conversion sous forme an mois jour h mm ss
' Dim DateF = Dateg.ToString("yyyy MM d hh mm ss")

LVI.Text = Dateg.ToString 'première
cellule
'ajout de la ligne
LVI.SubItems.Add((TmpName).ToString) 'seconde cellule
listbox.Items.Add(LVI)
End if

d'avance merci de votre aide


Avatar
Jérémy Jeanson
Bonjour Dan,

Une méthode Simple consiste à retirer l'ordoencement automatique et à
utiliser Linq pour trier ta liste.

Voici un exemple de ce qui peut être fait (dans mon exemple je liste des
fichiers du répertoire mes documents):

Dim path As String =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

Dim dir As New System.IO.DirectoryInfo(path)
Dim fichiers As IEnumerable(Of System.IO.FileInfo) = From f In
dir.GetFiles("*", IO.SearchOption.AllDirectories) _
Order By f.CreationTime _
Select f

For Each file As System.IO.FileInfo In fichiers
Dim LVI As New ListViewItem
'première cellule
LVI.Text = file.CreationTime.ToString()
'seconde cellule
LVI.SubItems.Add((file.Name).ToString)
'ajout de la ligne
ListBox.Items.Add(LVI)
Next

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Dan
Salut jeremi .
Merci encore,je vais regarder mais je le suis lance dans un code
condidtant a faire un table chaque element contien la date de mon fichier
suivi du non de ce fichier,de la sort je peux trier sur la date et ensuite
recuperer ne nom de mon fichier
ca marche bien mais malfeureusement il me semble que dans le code suivant
qui me permet de recuperer tous les nom de fichier de mon repertoir le
premier fichier ne m'est pes donné,
voici mon code
For Each file In Directory.GetFiles(CHEMIN)
extension =
UCase(My.Computer.FileSystem.GetFileInfo(file).Extension)
' If FileLen(file) > 0 Then GoTo suita
If extension = ".JPG" Or extension = ".AVI" _
Or extension = ".MPEG" Or extension = ".MPG" Then
Dim Dateg = FileDateTime(file)

Dim DateF = Dateg.ToString("yyyy MM dd HHH mm ss")
Dim name As String = System.IO.Path.GetFileName(file)
totala = totala & DateF & name & ";"
End If
suita:
Next file

qu'en penses,sela doit provenir de la ligne
For Each file In Directory.GetFiles(CHEMIN)?



"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour Dan,

Une méthode Simple consiste à retirer l'ordoencement automatique et à
utiliser Linq pour trier ta liste.

Voici un exemple de ce qui peut être fait (dans mon exemple je liste des
fichiers du répertoire mes documents):

Dim path As String =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

Dim dir As New System.IO.DirectoryInfo(path)
Dim fichiers As IEnumerable(Of System.IO.FileInfo) = From f In
dir.GetFiles("*", IO.SearchOption.AllDirectories) _
Order By f.CreationTime _
Select f

For Each file As System.IO.FileInfo In fichiers
Dim LVI As New ListViewItem
'première cellule
LVI.Text = file.CreationTime.ToString()
'seconde cellule
LVI.SubItems.Add((file.Name).ToString)
'ajout de la ligne
ListBox.Items.Add(LVI)
Next

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr


Avatar
Jérémy Jeanson
Bonjour Dan,

Normalement non, la ligne suivante ne doit pas présenter de souci.
For Each file In Directory.GetFiles(CHEMIN)

Si tu veux en être certain utilise une variable intermédiaire pour
scruter la liste obtenue en mode debug et savoir ce qui se passe réellement.

Vu que tu semble toujours être en plein migration de Vb6 vers Vb.net
j'en profite pour te glisser un petite astuce de remplacement pour ton
test que tu as mis en commentaire :
If FileLen(file) > 0 Then GoTo suita
peut être remplacé
If FileLen(file) > 0 Then Continue For
sans utiliser détiquette ni goto
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Dan
merci jérémy.
J'ai fini par trouver mais voici mon code
je recupere la date la plus petite entre la date de creation et la date de
modification.
ensuite je soustrai un certain temps cette date,ici 35 Mn.
et j'affiche cette date dans un textbox.
peut etre qu'il y aurait plus simple


Dim duration As System.TimeSpan
duration = New System.TimeSpan(0, 0, 35, 0)

Dim dmodif = Directory.GetLastWriteTime(totala(nbd))

Dim dcrea = Directory.GetCreationTime(totala(nbd))

If Directory.GetLastWriteTime(totala(nbd)) <
Directory.GetCreationTime(totala(nbd)) Then
dcrea = dmodif

End If
Dim aa = dcrea.Subtract(duration)
textdate.Text = aa
"Dan" a écrit dans le message de
news:49fc69da$0$292$
Bonjour a tous.
J'ai trouvé" la solution ,il me reste une seconde qyestion.
Sans liste viewer coment creer une teble de la liste de mes fichiers JPG
triée sur la date de création?
D"avance merci de votre aide .




"Dan" a écrit dans le message de
news:49fb6b94$0$291$
Bonjour a tous.


Dans un listviever je mets en premiere colonne la date de création de
mon fichier et en segonde colonne le nom de ce fichier.
malheureusement le tri semble se faire sur jour mois an et pas sur
AN mois jour.
coment proceder pour mettre ma date sous la bonne forme dans Listviewer?

Voici mon code:

If File.Exists(Entree) Then 'Si c'est un fichier
Dim LVI As New ListViewItem
Dim Dateg = FileDateTime(chemin & TmpName)
'conversion sous forme an mois jour h mm ss
' Dim DateF = Dateg.ToString("yyyy MM d hh mm ss")

LVI.Text = Dateg.ToString 'première
cellule
'ajout de la ligne
LVI.SubItems.Add((TmpName).ToString) 'seconde cellule
listbox.Items.Add(LVI)
End if

d'avance merci de votre aide