Déplacer les fichier qui ont plus de 2 mois

Résolu
trucss
Messages postés
117
Date d'inscription
jeudi 17 février 2022
Statut
Membre
Dernière intervention
1 juillet 2022
- Modifié le 14 juin 2022 à 11:11
Whismeril
Messages postés
17483
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
- 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
17483
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
600
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
117
Date d'inscription
jeudi 17 février 2022
Statut
Membre
Dernière intervention
1 juillet 2022

14 juin 2022 à 17:13
RRR oui desole tu peux le supprimer je le mettrais dans vb.net merci
0
Whismeril
Messages postés
17483
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
600
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