IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Supprimer fichier en fonction d'un filtre et de la date de c


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Supprimer fichier en fonction d'un filtre et de la date de c
    Problematique:
    Effacer tous les fichiers d'un repertoire datant de plus de XXX jours selon un filtre donne.


    Bonjour,

    Je bloque sur la comparaison de la date de creation du fichier.

    Voici le code que j'utilise:

    Avec t_Str = std::string;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    unsigned long DeleteFileInDir(t_Str DirPath, t_Str FileFilter)
    {
    	unsigned long ErrorCode = 0;
    	FILETIME ft;		// System Time expressed as a FileTime
    	SYSTEMTIME st;  // system time
    	GetSystemTime(&st);              // gets current time
    	SystemTimeToFileTime(&st, &ft);  // converts to file time format
     
    	t_Str PathWithFilter = DirPath.append(FileFilter); 
    	WIN32_FIND_DATA data;
     
    	HANDLE h = FindFirstFile(PathWithFilter.c_str(), &data);
     
    	BOOL bMoreFiles =  (h != INVALID_HANDLE_VALUE);
     
    	while (bMoreFiles)
    	{
    			if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == false
    					&& data.ftCreationTime < (ft - 20))
    				OutputDebugString(data.cFileName);
    				//DeleteFile(data.cFileName);
     
    			bMoreFiles = FindNextFile(h, &data);
    	}
     
    	if (GetLastError() != ERROR_NO_MORE_FILES)
    			ErrorCode = GetLastError();
     
    	if (h != INVALID_HANDLE_VALUE) 
    		FindClose(h);
     
    	return ErrorCode;
    }
    Pourriez-vous avoir l'amabilite de m'aider svp ?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut J'ai oublie de dire qu'il est impossible d'utiliser les MFC
    TEDLT

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Il faut utiliser CompareFileTime. Nouveau probleme
    Pour verifier la condition sur la date on peut utiliser ComparefileTime.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CompareFileTime(data.ftCreationTime, (ft - 20)) == -1
    Mais le compilateur refuse : ft - 20

    Sauriez-vous comment retrancher 20 jours a un FILETIME svp ?

Discussions similaires

  1. [Batch] Supprimer des fichiers en fonction de leur date
    Par charlix dans le forum Scripts/Batch
    Réponses: 55
    Dernier message: 05/10/2015, 17h18
  2. supprimer une ligne du fichier en fonction de son identifiant
    Par kabirou ousseini dans le forum C++
    Réponses: 0
    Dernier message: 28/04/2009, 21h21
  3. Comment supprimer des lignes d'un fichier en fonction d'un autre fichier
    Par Ohemeg dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 21/04/2009, 13h56
  4. Supprimer des fichiers en fonction de la date sous DOS
    Par charlix dans le forum Windows
    Réponses: 0
    Dernier message: 21/03/2008, 08h18
  5. [FTP] fonction supprimer fichier
    Par gaetanc15 dans le forum Langage
    Réponses: 1
    Dernier message: 07/02/2007, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo