Récupérer les fichiers modifiés aujourd'hui

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- - Dernière réponse : KX
Messages postés
16043
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 octobre 2019
- 29 août 2013 à 11:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100088-recuperer-les-fichiers-modifies-aujourd-hui

Afficher la suite 
lolyta1
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1 -
Merci Cs_Julien

mais j'arrive pas à reproduire le même code sur une page jsp
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246 -
C'est normal, le fichier doit être côté serveur, soit il est déjà présent côté serveur et dans ce cas là, il fonctionnera soit tu dois d'abord uploader ce fichier vers le serveur.
KX
Messages postés
16043
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 octobre 2019
88 -
Je trouve très moyen de comparer deux dates par la représentation de leurs String. En plus tel que c'est fait, les objets SimpleDateFormat sdf, et Date dateAujourdhui sont recréés à chaque accept, ça veut dire pour chaque fichier à analyser, or la date ne va pas changer d'un fichier à l'autre, et encore moins le format !

J'améliorerai en faisant comme ceci, le constructeur initialise deux dates (le minuit de début de journée, et le minuit de fin de journée, pas forcément le même jour d'ailleurs...) et on vérifie que la date du fichier est bien entre les deux.

import java.io.File;
import java.io.FileFilter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateFileFilter implements FileFilter {
    private final Calendar midnightBefore;
    private final Calendar midnightAfter;

    public DateFileFilter() {
        this(null, null);
    }

    public DateFileFilter(Date date) {
        this(date, date);
    }

    public DateFileFilter(Date begin, Date end) {
        midnightBefore = new GregorianCalendar();
        midnightAfter = new GregorianCalendar();

        if (begin != null)
            midnightBefore.setTime(begin);

        if (end != null)
            midnightAfter.setTime(end);

        midnightBefore.set(Calendar.HOUR, 0);
        midnightBefore.set(Calendar.MINUTE, 0);
        midnightBefore.set(Calendar.SECOND, 0);
        midnightBefore.set(Calendar.MILLISECOND, 0);

        midnightAfter.set(Calendar.HOUR, 23);
        midnightAfter.set(Calendar.MINUTE, 59);
        midnightAfter.set(Calendar.SECOND, 59);
        midnightAfter.set(Calendar.MILLISECOND, 999);
    }

    @Override
    public boolean accept(File f) {
        GregorianCalendar calendar = new GregorianCalendar();
        calendar.setTimeInMillis(f.lastModified());
        return calendar.after(midnightBefore) && calendar.before(midnightAfter);
    }
}