Recuperer date de derniere modif d'un fichier

starkrous Messages postés 13 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 25 juin 2003 - 4 juin 2003 à 13:04
cs_ahmed12 Messages postés 83 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 9 décembre 2010 - 23 juil. 2003 à 13:14
bonjour pour mon stage on m'a demandé de creer une application qui recuperer les dates de derniere modif d'un fichier pour les comparer a la date actuelle. (pour verifier des sauvegardes si vous voulez tout savoir)

j'ai vu dans l'aide de visual studio qu'il existait une fonction lastwritetime() qui faisait ça mais j'avoue ne pas savoir du tout comment on s'en sert...ça doit pas etre compliquer mais c'est quand meme pas de mon niveau.

si qq'un pouvait m'aider, m'expliquer ou mieux me donne un code source recupererant par exemple la date de modif du fichier C:\toto.txt ça m'avancerait bien !!^^

merci d'avance.

10 réponses

cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
4 juin 2003 à 14:12
0
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
4 juin 2003 à 14:18
moi non plus g pas compris comment utiliser la fonction lastwritetime(), mais c pas grave, g une autre solution :

#include <windows.h>
#include <time.h>
#include <sys\stat.h>

int main (void)
{
WIN32_FIND_DATA wData;
char NomFich[50], Chemin[100], etoiles[3], Rep[53], jour[3], mois[3], an[5], synthese[11];
int JourModif;
struct stat DataFich;
struct tm *Modif;

strcpy(Chemin, "D:\\test\");
strcpy(etoiles, "*.*");

strcpy(Rep, Chemin);
strcat(Rep, etoiles);

HANDLE listing;
listing = FindFirstFile(Rep, &wData);

while((FindNextFile(listing, &wData)))
{
memset(NomFich, 0, 50);
strcpy(NomFich, wData.cFileName);
if(strcmp(NomFich, "toto.txt") == 0)
{
strcat(Chemin, "toto.txt");
stat(Chemin, &DataFich);
Modif = localtime(&DataFich.st_mtime);

JourModif = Modif->tm_mday;
itoa(JourModif, jour, 10);
JourModif = Modif->tm_mon + 1;
itoa(JourModif, mois, 10);
JourModif = Modif->tm_year + 1900;
itoa(JourModif, an, 10);

strcpy(synthese, jour);
strcat(synthese, "/");
strcat(synthese, mois);
strcat(synthese, "/");
strcat(synthese, an);

MessageBox(NULL, synthese, "date de modif", MB_OK);
}
}
return 0;
}

c long, c compliqué, mais ca marche alors bon ...
0
cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
4 juin 2003 à 14:23
regarde ce que je viens de mettre, c'est hyper simple!y'a rien a comprendre
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2003 à 14:29
#include <time.h>
#include <sys\stat.h>
Voila 2 include qui n'ont rien a faire dans du win32.
BruNews, ciao...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
4 juin 2003 à 14:45
impossible de compiler sans avec Dev-cpp 4.9.8
une explication ???
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2003 à 14:57
explication est simple, ne plus se servir de ce qui est declare dans ces h, win32 a tout ce qu'il faut en API.
BruNews, ciao...
0
starkrous Messages postés 13 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 25 juin 2003
5 juin 2003 à 09:10
oups desolé d'avoir fait le boulet sur ce coup (post sur 2 forums differents) mais j'suis pas habitué qu'on me reponde, j'ai fait le tour de pas mal de forum et niet que dalle.

Merci pour votre aide j'vais tester ça et j'vous dirais ^^

ThanK, See You Soon
0
starkrous Messages postés 13 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 25 juin 2003
5 juin 2003 à 09:47
CoOL ça marche yavait juste une ptite erreur toute bete
tu avais ecrit:
FileTimeToLocalFileTime( &fTimeRead, &fLocTime );
Alors que pour le "last_write_time" il faut:
FileTimeToLocalFileTime( &fTimeWrite, &fLocTime );

du coup mon code ressemble a ça:

#include "stdafx.h"
#include <windows.h>
#include <fstream>
#include "iostream"
#include <conio.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
SYSTEMTIME sysTime;
FILETIME fTimeCreat,fTimeAcce,fTimeWrite ,fLocTime;
HANDLE hFile;
char Filename[80];

cout<<"++++Last_Write_Time d'un Fichier++++";
cout<<"\nEntrez le nom du fichier: ";
cin>>Filename;
cout << endl;

// Ouvrir/créer un fichier. //avant: "C:/test2.txt"
hFile = CreateFile( Filename, GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL );

// Recupere l'heure du fichier
GetFileTime( hFile, &fTimeCreat, &fTimeAcce, &fTimeWrite);

// Convertir une heure de fichier UTC. en l'heure locale du fichier
FileTimeToLocalFileTime( &fTimeWrite, &fLocTime );

// convertir une structure FILETIME en la date/heure SYSTEM
FileTimeToSystemTime( &fLocTime, &sysTime );

cout << "Fichier" << Filename <<endl;
cout << "Jour : " << sysTime.wDay << "/" << sysTime.wMonth << "/" << sysTime.wYear << endl;
cout << "Heure: "<< sysTime.wHour << "h" << sysTime.wMinute << endl;

CloseHandle( hFile );
getch();
return 0;
}

j'ai peut etre mis des fichier include qui servent a rien d'ailleurs...
bon allez maintenant que je sais faire ça j'vais pouvoir vraiment avancer
objectif: recolter toute les dates de modif de fichier de sauvegarde et les comparer a la date du jour pour verifier que toutes les sauvergardes ont bien été effectué recement

See You SoON
0
cs_ahmed12 Messages postés 83 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 9 décembre 2010
23 juil. 2003 à 13:12
oubadji

je connes deux fonction qui permet de requeperer la date de dernier modiffication en c++ Buld c'est FileAge(file) ; et FileGetDat(File) ;c'est trés outile c'est 2 fonction et meme tu peux utiliser FileGetAttr(file);FileSetAtt(),
0
cs_ahmed12 Messages postés 83 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 9 décembre 2010
23 juil. 2003 à 13:14
oubadji
0
Rejoignez-nous