Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RETROUVE LA DATE DE CRÉATION D'UN FICHIER - API


Information sur la source

Catégorie :API Classé sous : date, fichier, création Niveau : Débutant Date de création : 12/11/2004 Vu : 8 286

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


Description

Une petite procédure très simple pour retrouver la date, l'heure de création d'un fichier avec les API.

Testé sous Win98 et 2000.

 

Source

  • '*****Dans une form*****
  • Dim Fichier_Path As String: Fichier_Path = ""
  • Dim Fichier_Existe As Boolean: Fichier_Existe = False
  • Dim Fichier_Date As String: Fichier_Date = ""
  • '**Fichier cible : test.txt**
  • If Right(App.Path, 1) <> "\" Then
  • Fichier_Path = App.Path & "\" & "test.txt"
  • Else
  • Fichier_Path = App.Path & "test.txt"
  • End If
  • Call Date_File(Fichier_Path, Fichier_Existe, Fichier_Date)
  • '*****On peut mettre le reste dans un module*****
  • Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
  • Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
  • Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  • Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
  • Private Const MAX_PATH = 260
  • Private Type FILETIME
  • dwLowDateTime As Long
  • dwHighDateTime As Long
  • End Type
  • Private Type WIN32_FIND_DATA
  • dwFileAttributes As Long
  • ftCreationTime As FILETIME
  • ftLastAccessTime As FILETIME
  • ftLastWriteTime As FILETIME
  • nFileSizeHigh As Long
  • nFileSizeLow As Long
  • dwReserved0 As Long
  • dwReserved1 As Long
  • cFileName As String * MAX_PATH
  • cAlternate As String * 14
  • End Type
  • Private Type SYSTEMTIME
  • wYear As Integer
  • wMonth As Integer
  • wDayOfWeek As Integer
  • wDay As Integer
  • wHour As Integer
  • wMinute As Integer
  • wSecond As Integer
  • wMilliseconds As Integer
  • End Type
  • Public Sub Date_File(Chemin_File As String, Existe_File As Boolean, Date_File As String)
  • If Dir(Chemin_File, vbNormal) = "" Then 'Le fichier n'existe pas
  • Existe_File = False
  • Exit Sub
  • Else 'Le fichier existe
  • Existe_File = True
  • End If
  • Dim Info_Fichier As WIN32_FIND_DATA
  • '**Localise/identifie le fichier sur le disque et Info_Fichier reçoit les informations**
  • Call FindClose(FindFirstFile(UCase(Chemin_File), Info_Fichier))
  • Dim ft As FILETIME
  • '**Convertion de la date UTC en temps locale**
  • Call FileTimeToLocalFileTime(Info_Fichier.ftCreationTime, ft)
  • Dim st As SYSTEMTIME
  • '**Convertion en date et heure system**
  • Call FileTimeToSystemTime(ft, st)
  • '**Date_File récupére la date sous forme : "11/11/2004"**
  • Date_File = st.wDay & "/" & st.wMonth & "/" & st.wYear
  • '**Autre exemple date et heure sous la forme "jeudi 11 novembre 2004 14:11:23"**
  • Dim FileTimeToDouble As Double
  • Dim FormatFileDate As String
  • 'Renvoie la date correspondant au jour, au mois, à l'année indiqués etc...
  • FileTimeToDouble = DateSerial(st.wYear, st.wMonth, st.wDay) + TimeSerial(st.wHour, st.wMinute, st.wSecond)
  • 'Format la date de type sous forme : "jeudi 11 novembre 2004 14:11:23"
  • FormatFileDate = Format(FileTimeToDouble, "long date") & " " & Format(FileTimeToDouble, "long time")
  • End Sub
'*****Dans une form*****
Dim Fichier_Path As String: Fichier_Path = ""
Dim Fichier_Existe As Boolean: Fichier_Existe = False
Dim Fichier_Date As String: Fichier_Date = ""

'**Fichier cible : test.txt**
If Right(App.Path, 1) <> "\" Then
  Fichier_Path = App.Path & "\" & "test.txt"
Else
  Fichier_Path = App.Path & "test.txt"
End If
Call Date_File(Fichier_Path, Fichier_Existe, Fichier_Date)


'*****On peut mettre le reste dans un module*****

Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Private Const MAX_PATH = 260

Private Type FILETIME
   dwLowDateTime As Long
   dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
   dwFileAttributes As Long
   ftCreationTime As FILETIME
   ftLastAccessTime As FILETIME
   ftLastWriteTime As FILETIME
   nFileSizeHigh As Long
   nFileSizeLow As Long
   dwReserved0 As Long
   dwReserved1 As Long
   cFileName As String * MAX_PATH
   cAlternate As String * 14
End Type

Private Type SYSTEMTIME
   wYear As Integer
   wMonth As Integer
   wDayOfWeek As Integer
   wDay As Integer
   wHour As Integer
   wMinute As Integer
   wSecond As Integer
   wMilliseconds As Integer
End Type

Public Sub Date_File(Chemin_File As String, Existe_File As Boolean, Date_File As String)

If Dir(Chemin_File, vbNormal) = "" Then 'Le fichier n'existe pas
  Existe_File = False
  Exit Sub
Else 'Le fichier existe
  Existe_File = True
End If

Dim Info_Fichier As WIN32_FIND_DATA
'**Localise/identifie le fichier sur le disque et Info_Fichier reçoit les informations**
Call FindClose(FindFirstFile(UCase(Chemin_File), Info_Fichier))

Dim ft As FILETIME
'**Convertion de la date UTC en temps locale**
Call FileTimeToLocalFileTime(Info_Fichier.ftCreationTime, ft)

Dim st As SYSTEMTIME
'**Convertion en date et heure system**
Call FileTimeToSystemTime(ft, st)

'**Date_File récupére la date sous forme : "11/11/2004"**
Date_File = st.wDay & "/" & st.wMonth & "/" & st.wYear

'**Autre exemple date et heure sous la forme "jeudi 11 novembre 2004 14:11:23"**
Dim FileTimeToDouble As Double
Dim FormatFileDate As String
'Renvoie la date correspondant au jour, au mois, à l'année indiqués etc...
FileTimeToDouble = DateSerial(st.wYear, st.wMonth, st.wDay) + TimeSerial(st.wHour, st.wMinute, st.wSecond)

'Format la date de type sous forme : "jeudi 11 novembre 2004 14:11:23"
FormatFileDate = Format(FileTimeToDouble, "long date") & " " & Format(FileTimeToDouble, "long time")

End Sub

Conclusion

Rien de difficile mais peut être utile au débutant

Avec qq modifications on peut retrouver la date de modification ou du dernier accès du fichier.
 

Commentaires et avis

signaler à un administrateur
Commentaire de general_tao le 16/11/2004 03:56:56

Mais est-ce que on peut changer la date ou est ce qu'il y a un moyen de le changer,

genre de :
jeudi 11 novembre 2004 14:11:23
                         à
dimacnhe 1 janvier 2000 00:00:00

thx d'avance

signaler à un administrateur
Commentaire de Nocturne le 16/11/2004 09:23:57

Il y a déjà une source pour modifier les dates notament la date de création : Lire et modifier les attributs de date d'un fichier, Auteur : Big Jim
http://www.vbfrance.com/code.aspx?ID=259

signaler à un administrateur
Commentaire de steph12358 le 18/02/2005 10:07:42

Exactement ce que je cherchais.

En plus je ne connaissais pas la syntaxe "dim ... :" permettant de déclarer et d'initialiser une variable en une seule opération. Avec VB on en apprend tous les jours...

Encore merci.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Réponse : Erreur de date de création après remplacement d'un fichier supprimé [ par jack ] Bonjour à tousCeci n'est pas une question mais une réponse à un vieille question que je n'ai pas su retrouver dans le forum.Le problème était :Sur un Date de création d'un fichier [ par jullouyot_46 ] Bonjour,je développe sous visual studio 2005 une appli en vb. Pour mettre à jour cette appli, je vais lui mettre un petit client ftpPour savoir si je Extraire la date de création et de modification d'un fichier [ par Elmago ] Je voudrais bien savoir si qlq un le sais comment extraire les différentes informations system d'un fichier et précisément la date de création et de Comment récupérer la date de création du fichier Excel actif (VBA) ? [ par loic91 ] Je ne trouve pas la méthode pour récupérer la date de création du fichier actif sous VBA. Pouvez-vous m'aider ?Merci fichier date de création [ par sergio008 ] J'aimerai savoir comment creer un fichier texte ou figure les noms de fichier ainsi que la date de création de l'ensemble d'un répertoire en VB. ?Merc Récupérer la date et l'heure de création d'un fichier [ par niluje ] Bonjour,Bah tout est eit dans le titre ...Je cherche à récupérer la date et l'heure de création d'un fichier .. mais je ne sais comment faire ..niluje Format de date de création d'un fichier imcompréhensible [ par Prog1001 ] bonjour !j'ai trouvé ce code pour rechercher des fichiers et en ressortir certains attributs :http://docvb.free.fr/apidetail.php?idapi=143Certains de modification de la date de création d'un fichier [ par fraizer ] Bonjour.Est-il possible de modifier la date de cr&#233;ation d'un fichier&nbsp;avec VB6 ?Merci. Récupération date de création d'un fichier Excel [ par 306xshdi ] Bonjour,Je voudrais r&#233;cup&#233;rer la date de cr&#233;ation du fichier Excel (que je viens d'ouvrir) en VBA. Malheureusement, je n'y arrive pas. Date de création d'un fichier [ par zegof ] Bonjour tout le mondeJ'aimerais savoir comment extraire la date de creation d'un fichier, en vb6Merci


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.