Manipulation de date de fichier

Signaler
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour, voila mon code actuel:
<meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css"><![CDATA[
p, li { white-space: pre-wrap; }
]]></style><!--StartFragment-->bool changeFileDateTime(QString const& file,time_t ctime,time_t actime,time_t modtime)

{

#ifdef Q_CC_GNU

//this function avalaible on unix and mingw

utimbuf butime;

butime.actime=actime;

butime.modtime=modtime;

return utime(file.toLatin1().data(),&butime)==0;

#else

return false;

#endif

}

J'ai 2 petite question:

- Comment définir la date de création?

- Pouvez vous me donner l'équivalent en visual studio?

Merci d'avance.

7 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
"en visual studio"
NON, VS est un IDE, pas un langage.

Voir SetFileTime() sur MSDN, exemple complet est donné.

ciao...
BruNews, MVP VC++
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009

Comment obtenir mon handle de mon fichier sans appelle CreateFile comme il dise:
http://msdn.microsoft.com/en-us/library/ms724933(VS.85).aspx
Tu as pas sous la main comment interfacé FILETIME avec du t_time ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Ouverture de fichier c'est CreateFile() et rien d'autre.

ciao...
BruNews, MVP VC++
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009

Donc cela te semble bon:
<meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css"><![CDATA[
p, li { white-space: pre-wrap; }
]]></style><!--StartFragment-->bool changeFileDateTime(QString const& file,time_t ctime,time_t actime,time_t modtime)

{

#ifdef Q_CC_GNU

//this function avalaible on unix and mingw

utimbuf butime;

butime.actime=actime;

butime.modtime=modtime;

return utime(file.toLatin1().data(),&butime)==0;

#else

#ifdef Q_CC_MSVC

FILETIME lpCreationTime;

FILETIME lpLastAccessTime

FILETIME lpLastWriteTime;

UnixTimeToFileTime(ctime, &lpCreationTime);

UnixTimeToFileTime(actime, &lpLastAccessTime);

UnixTimeToFileTime(modtime, &lpLastWriteTime);

return SetFileTime(CreateFile(file.toStdWString(),0,0),

&lpCreationTime,

&lpLastAccessTime,

&lpLastWriteTime);

#else

return false;

#endif

#endif

}<!--EndFragment-->

J'ai pas visual pour testé, et pour la date de creation sur unix tu as une idée?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Un handle de fichier se ferme si ouverture réussie:
CloseHandle()

Je t'ai mis un exemple ici:
http://www.cppfrance.com/code.aspx?id=50058

Pour tester un prog VS n'entre pour rien, c'est Windows qu'il faut.

ciao...
BruNews, MVP VC++
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009

Et sous unix pour la date de création tu sais pas ou je pourrai trouvé ça?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Je ne bosse que sous Windows.

ciao...
BruNews, MVP VC++