Déplacer les fichier qui ont plus de 2 mois

Résolu
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 - Modifié le 14 juin 2022 à 11:11
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 - 15 juin 2022 à 09:58
Bonjour,
Dans un dossier j'ai des fichiers ou je voudrais les déplacer dans un dossier archive si ils ont plus de 2 mois

For Each fichier As String In IO.Directory.GetFiles(c:\test, "*.csv")
            Dim LaDate As Date = IO.File.GetLastWriteTime(fichier)
            If DateDiff("m", (LaDate, Now) > 2 Then

            End If
        Next


C'est la solution la plus simple ?

3 réponses

Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 656
14 juin 2022 à 16:33
Bonjour

Plutôt que signaler ta propre discussion parce que tu l'as résolue de ton côté (pour la faire supprimer ? ), tu aurais pu poster ta solution et ensuite marquer toi même le sujet résolu, pour le prochain.

Cela dit, DateDiff, c'est pas du VB.Net c'est du VB6, on t'as déjà dit d'enlever la référence à VisualBasic pour coder plus proprement.
Donc si ta solution utilise aussi VB6, je supprimerai probablement la discussion pour ne pas proposer de solution pas très bonne.
0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
14 juin 2022 à 17:13
RRR oui desole tu peux le supprimer je le mettrais dans vb.net merci
0
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 656
15 juin 2022 à 09:58
Bon

D'abord j'attire ton attention sur le fait que le calcul présenté ne te permet pas rigoureusement de savoir si un fichier à plus de 2 mois.

Aujourd'hui nous sommes le 15 juin.
Donc un fichier datant du 16 avril a moins de 2 mois et un fichier datant du 14 avril a plus de 2 mois.
Pour ces 2 dates, d'ailleurs pour n'importe quelle date d'avril, DateDiff va te retourner 2.
Parce que tu lui as demandé de faire la différence des mois. 6-4 ça fait 2 peut importe le jour.

Si c'est ce que tu cherches tant mieux. Et dans ce cas en vrai VB.Net ça s'écrit.
Private Sub test()
    Dim d1 As DateTime = DateTime.Parse("16/04/2022")
    Dim d2 As DateTime = DateTime.Parse("15/06/2022")' là c'est pour ce l'exemple marche encore demain, mais toi tu devras mette DateTime.Now
    Dim diffMois As Integer = d2.Month - d1.Month
End Sub


Si tu veux savoir vraiment si un fichier à plus ou moins de 2 mois, alors tu devras jouer avec la propriété Day de DateTime en plus de Month.
0
Rejoignez-nous