begin process at 2010 02 09 23:56:18
  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 recuperer date de derniere modification d'un fichier [ par niko14 ] Salut tout le monde!j'ai un probleme que je ne sais resoudre et dont je ne sais d'ou il vient!VOila j'ai un fichier dans unr epertoire que je dois ret Comparer date/heure d'un fichier avec heure systeme [ par guda ] Bonjour, J'ai besoin de chercher dans un repertoire les fichiers dont la date de création excede une heure. Je pensais faire une simple comparaison suprimer un fichier a une date fixe [ par patbl ] j'ai un petit programme qui fonctionne tres bien mais je souhaite lui donnée une date fixe comment puis je faire pour supprimer a une date clémerci de Copie de fichiers entre deux date . [ par Flow8002 ] Bonjour tout le monde , Tout  d'abord bonne année a vous .je vous explique mon probleme , je dois copiers des fichiers d'un repertoir X vers un repert Obtenir le chemin complet d'un fichier ouvert [ par goldorakiller ] Bonjour à tous !Voilà j'ai crée un logiciel avec lequel j'ouvre un fichier par l'intermediaire de Openfiledialog et je voudrais afficher le chemin com Gestion/format d'un fichier Text [ par kikiplop ] Bonjour,Mon application doit lire un fichier Texte dans le format suivantligne 1= Evenement1; Date 1 ; InformationA1; InformationB1;ligne 2= Evenement Reconnaissance d'une date dans un nom de fichier [ par faucon69 ] Bonjour, je développe actuellement une petite application pour le boulot et j'aimerais avoir votre aide. Cette application doit traiter des fichiers d


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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,390 sec (3)

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