begin process at 2012 02 14 18:56:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Fichier / Disque

 > 

Obtenir la date d'un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Obtenir la date d'un fichier

samedi 5 novembre 2005 à 22:45:34 | Obtenir la date d'un fichier

yvesyves

Membre Club
SLt a tous,
J'ai un gros problème, j'aimerais savoir comment on peut obtenir la date de modification d'un fichier pour ensuite pour pouvoir la comparer à une autre.
Merci de vos réponses.
samedi 5 novembre 2005 à 22:57:00 | Re : Obtenir la date d'un fichier

jeanmarc

Réponse acceptée !

Bonsoir,
Exemple avec DateLastModified

Dim Path
Path  = "d:\KRNSDE\"

MsgBox ShowFolderList(Path),vbmessage,"Fichiers présents dans le  répertoire"
Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe, f, fdate, fname, dtDiffFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(path)
Set fic = Dossiers.Files

For Each fichiers in fic
    Set f = fso.GetFile(fichiers)
    fdate = f.DateLastModified
    fname = f.Name
    dtDiffFile = DateDiff("d", Now, fdate)
    If dtDiffFile <= -5 Then
       MsgBox  "Le fichier " & Path & fname & " sera supprimé car créé le " & fdate
'      fso.DeleteFile(Path & fname)
    Else
       MsgBox "Le fichier " & Path & fname & " ne sera pas supprimé car créé le " & fdate
   End If
   strListe = strListe & vbcrlf & vbcrlf & fname & " " & fdate
Next
  ShowFolderList = strListe
  End Function

samedi 5 novembre 2005 à 23:18:27 | Re : Obtenir la date d'un fichier

jpleroisse

Bonsoir,
Bien que tu ais la réponse à ta question, voici une code qui te donne les dates de création, de modification et d'accession à un fichier.

Private Sub Command1_Click()
Dim fso As Object, f
    Set fso = CreateObject("Scripting.FileSystemObject")
On Error GoTo Fin
Set f = fso.GetFile("C:\MonFichier.txt")
MsgBox "Créé le : " & f.DateCreated
MsgBox " Modifié le : " & f.DateLastModified
MsgBox "Accédé le : " & f.DateLastAccessed
Set f = Nothing
Fin:
Set fso = Nothing
End Sub

jpleroisse

samedi 5 novembre 2005 à 23:51:44 | Re : Obtenir la date d'un fichier

Gobillot

j'aime pas fso !
'  le plus simple
    MsgBox FileDateTime(nom)



Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwSharedMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As Currency, lpLastAccessTime As Currency, lpLastWriteTime As Currency) As Long
Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As Currency, lpLocalFileTime As Currency) As Long

    Dim dt1    As Currency
    Dim dt2    As Currency
    Dim dt3    As Currency
    Dim dt      As Date
    Dim hCrea As Long

    hCrea = CreateFile(nom, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    If hCrea = INVALID_HANDLE_VALUE Then MsgBox "Erreur Lecture: " & nom:  Exit Sub
    GetFileTime hCrea, dt1, dt2, dt3
    CloseHandle (hCrea)

'pour chacune des trois dates:

'   en Universel
    dt = (dt1 / 1000 - 9435312000#) / 86400
    MsgBox dt
'   en heure d'hiver
    dt = (dt1 / 1000 - 9435308400#) / 86400
    MsgBox dt
'   en heure d'été
    dt = (dt1 / 1000 - 9435304800#) / 86400
    MsgBox dt
'   en heure Locale
    FileTimeToLocalFileTime dt1, Cur
    dt = (Cur / 1000 - 9435312000#) / 86400
    MsgBox dt



Daniel
dimanche 6 novembre 2005 à 00:43:10 | Re : Obtenir la date d'un fichier

BruNews

Administrateur CodeS-SourceS
Bravo, enfin du vrai code.
FSO c'est attacher une remorque derrière une 2cv, vb n'est déjà pas violent, inutile de le ralentir encore en chargeant une machine script par dessus.

Gobillot > tu peux faire idem sans ouvrir avec CreateFile, pourrait rater si un prog a déjà ouvert en exclusif. FindFirstFile et tu fais un CopyMemory sur les 2 champs de WIN32_FIND_DATA.

ciao...
[ Lien ]
BruNews, MVP VC++
dimanche 6 novembre 2005 à 01:22:09 | Re : Obtenir la date d'un fichier

Gobillot

pas de problème
CopyMemory pas nécessaire, résultat directement en Currency




Const MAX_PATH = 260
Const FILE_SHARE_READ = &O1
Const FILE_SHARE_WRITE = &O2
Private Const GENERIC_ALL = &H10000000
Private Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const OPEN_EXISTING = 3
Const INVALID_HANDLE_VALUE = -1

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

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFile As Long) As Long

    Dim FindData As WIN32_FIND_DATA
    Dim Cur      As Currency
    Dim nom      As String
    Dim hfind    As Long
    Dim dt       As Date
   
    nom = "C:\WINDOWS\explorer.exe"

    hfind = FindFirstFile(nom, FindData)
    If hfind = INVALID_HANDLE_VALUE Then MsgBox "Erreur Lecture: " & nom:  Exit Sub
    FindClose hfind
   
    FileTimeToLocalFileTime FindData.ftLastWriteTime, Cur
    dt = (Cur / 1000 - 9435312000#) / 86400
    MsgBox "date de création = " &  dt

NB: en fait la transformation en Temps Local n'est pas très heureuse
       autant le temps universel ne changera pas, que le temps en Local ne sera
       pas le même en été et en hiver.
      le fichier n'aura donc pas la même date (date affichée) suivant qu'on est
      en été ou en hiver.
     
Daniel


Cette discussion est classée dans : fichier, date, obtenir


Répondre à ce message

Sujets en rapport avec ce message

Obtenir la date de dernière modification d'un fichier sur le net [ par Logoman ] Voilà, j'aimerai savoir comment je pourrai obtenir la date de dernière modification d'un fichier sur le net.Aidez-moi s'il vous plaît !!Répondez moi k Help avec Crystal; Report [ par genesimo ] Bonjour,J'aimerais obtenir le fichier developr.hlp afin d'obtenir de l'aide lorsque j'utilise Crystal Report.Vous pouvez m'envoyer votre fichier à:mai Date de sauvegarde [ par KifKif ] Bonjour et bonne année à tous les mordus de Visual BasicEst-il possible en VB5 ou VB6 ou VB.NET de garder la date de création d'un fichier en sauvegar 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 Propriété de fichier [ par smlynarc ] Bonjour,Quelqu'un aurait il une macro en VBA pour récupérer l'ensemble des propriété d'un fichier ? Je parle de la date de création, la date du dernie RECUPERER LA DATE D'UN FICHIER [ par Pesmerga ] je suis desesperer et au bord du suicide (lol)je fais un programme en VB et à un moment donné, je fais un test pour verifier si la date de mon fichier La fonction Date [ par energizer956956 ] Bonjour,alors voila mon problème est le suivant : j'ai créé une fonction qui utilise la fonction date, mais lorsque je lance cette fonction je reçoit Pb ouverture csv avec date via VBA excel 2000 [ par ultator ] Bonjour,Je possède un fichier de données .csv (créée sous excel 97) que je n'arrive pas à ouvrir correctement sous excel 2000. Lorsque je lance excel winamp fichier lu : en obtenir le chemin d'accès [ par Safireo ] Salut tlm !je cherche à savoir comment obtenir le chemin d'accès du fichier qui est en cours de lecture dans winamp 5. ça me permettrait de faire un s texte dans une image [ par snoopline ] Bonjour,Je souhaite inserer la date dans un .jpgLa date et le fichier.jpg s'affichent bien sur la Picturebox mais la fonction Save picture n'enregistr


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales