Comment modifier la date (creat ou modif) d'un fichier par prog ?

Comment modifier la date (creat ou modif) d'un fichier par prog ? - VB/VBA/VBS - Programmation

Marsh Posté le 01-08-2002 à 18:23:27    

j'aimerai savoir si il est possible de modifier la date de création d'un fichier ou celle de modification par le code (VB ou C# de préférence)
 
merci

Reply

Marsh Posté le 01-08-2002 à 18:23:27   

Reply

Marsh Posté le 02-08-2002 à 09:14:10    

bon ca passionne pas les foules ;)
mais pourtant c assez "chaud"
 
g trouvé une API qui le permettait TouchFileTimes
ze pb is que j'arrive pas à affecter la date comme je veux
 

Declare Function TouchFileTimes Lib "imagehlp.dll" (ByVal FileHandle As Long, ByRef pSystemTime As Any) As Long

Reply

Marsh Posté le 02-08-2002 à 09:22:04    

Styx0 a écrit a écrit :

bon ca passionne pas les foules ;)
mais pourtant c assez "chaud"
 
g trouvé une API qui le permettait TouchFileTimes
ze pb is que j'arrive pas à affecter la date comme je veux
 

Declare Function TouchFileTimes Lib "imagehlp.dll" (ByVal FileHandle As Long, ByRef pSystemTime As Any) As Long





essay d'aller sur ce site tu auras la réponse à ton problème :
http://www.allapi.net/


---------------
;) Bienvenue sur le site...:)             http://perso.wanadoo.fr/rapport
Reply

Marsh Posté le 02-08-2002 à 09:44:27    

Hehe je connais bien l'API guide ;) pas d'exemple bien me conernant
 
mais g trouvé dans l'API Viewer (un autre de leurs formidables produits) le type qu'il me manquait (à savoir la structure du SYSTEMTIME)
 
merci quand meme  
 
si quelqu'un veut la solution ...

Reply

Marsh Posté le 02-08-2002 à 10:15:15    

ecoute tu n'as qu'a la mettre, on sait jamais, je le prendrais peut être, ;)


---------------
;) Bienvenue sur le site...:)             http://perso.wanadoo.fr/rapport
Reply

Marsh Posté le 02-08-2002 à 10:28:22    

Les fichiers dont je veux changer la date ont le format suivant
<année><mois><jour>.<heure><min><second>.log
 

Private Sub m_ChangerFichierDateHeure(p_NomCheminFichier As String)
 
    Dim FileDate As SYSTEMTIME
    Dim FileName() As String
    Dim strFile As String
    Dim lngHandle As Long
     
    If InStr(1, p_NomFichier, "\" ) <> 0 Then
    ' il faut découper la chaine
        FileName = Split(p_NomFichier, "\" )
        strFile = FileName(UBound(FileName))
    End If
     
    FileDate.wDay = Mid(strFile, 5, 2)
    FileDate.wHour = Mid(strFile, 8, 2) - 2 ' pasque l'api est bizarre elle compte les heures - 2 !
    FileDate.wMilliseconds = 0
    FileDate.wMinute = Mid(strFile, 10, 2)
    FileDate.wMonth = Mid(strFile, 3, 2)
    FileDate.wSecond = Mid(strFile, 12, 2)
    FileDate.wYear = Year(Date)
 
     
    lngHandle = CreateFile(p_NomFichier, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
         
    Call TouchFileTimes(lngHandle, ByVal FileDate)
         
    CloseHandle lngHandle
 
 
End Sub


 
Vous pouvez initialiser votre FileDate avec les valeurs que vous voulez (moi je me suis basé sur le nom du fichier)
 
ah oui les déclarations API nécessaires sont


Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Declare Function TouchFileTimes Lib "imagehlp.dll" (ByVal FileHandle As Long, ByRef pSystemTime As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode 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 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


 
enjoy ! ;) (jsuis pas sur que grand monde en ait l'utilité tout les jours)

Reply

Marsh Posté le 02-08-2002 à 11:03:27    

non, je ne pense pas, mais c'est toujours non à prendre...Uitliser les API ca demande une certaines expérience dans le programmation et d'apprendre les bases élementaires, c'est un minimum pour pouvoir les utiliser correctement ! ;)


---------------
;) Bienvenue sur le site...:)             http://perso.wanadoo.fr/rapport
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed