|
begin process at 2008 07 19 08:49:33
Derniers logiciels
|
Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
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 !
SETFILEDATE
Information sur la source
Description
Un module pour modifier les heures de création, de dernière lecture et de modification d'un fichier en VB.NET Adapté de souces VB6. Toujours bien utiles les APIs.
Source
- Imports VB = Microsoft.VisualBasic
- Module FileDate
- Private Structure FILETIME
- Dim LowDateTime As Integer
- Dim HighDateTime As Integer
- End Structure
-
- Private Structure SYSTEMTIME
- Dim sYear As Short
- Dim sMonth As Short
- Dim sDayOfWeek As Short
- Dim sDay As Short
- Dim sHour As Short
- Dim sMinute As Short
- Dim sSecond As Short
- Dim sMilliseconds As Short
- End Structure
-
- Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As Integer
- Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Integer, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As Integer
- Private Declare Function SystemTimeToFileTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME, ByRef lpFileTime As FILETIME) As Integer
- Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
- Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (ByRef lpLocalFileTime As FILETIME, ByRef lpFileTime As FILETIME) As Integer
-
- 'Modifi les dates d'un fichier
- Public Function FileSetDate(ByVal sFileName As String, ByVal dFileDate As Date, Optional ByRef bSetCreationTime As Boolean = False, Optional ByRef bSetLastAccessedTime As Boolean = False, Optional ByRef bSetLastModified As Boolean = False) As Boolean
- Const GENERIC_WRITE As Integer = &H40000000
- Const OPEN_EXISTING As Short = 3
- Const FILE_SHARE_READ As Short = &H1S
- Const FILE_SHARE_WRITE As Short = &H2S
-
- Dim lhwndFile As Integer
- Dim tSystemTime As SYSTEMTIME
- Dim tLocalTime, tFileTime As FILETIME
-
- tSystemTime.sYear = Year(dFileDate)
- tSystemTime.sMonth = Month(dFileDate)
- tSystemTime.sDay = VB.Day(dFileDate)
- tSystemTime.sDayOfWeek = Weekday(dFileDate) - 1
- tSystemTime.sHour = Hour(dFileDate)
- tSystemTime.sMinute = Minute(dFileDate)
- tSystemTime.sSecond = Second(dFileDate)
- tSystemTime.sMilliseconds = 0
-
- 'Ouvre le fichier pour obtenir le handle
- lhwndFile = CreateFile(sFileName, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)
- If lhwndFile Then
- 'Fichier ouvert
- 'Converti de l'heure systeme a l'heure locale
- SystemTimeToFileTime(tSystemTime, tLocalTime)
- 'Converti l'heure locale en heure GMT
- LocalFileTimeToFileTime(tLocalTime, tFileTime)
- 'Change les propriétés date/time du fichier
- FileSetDate = True
- If bSetCreationTime Then
- FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, tFileTime, Nothing, Nothing))
- End If
- If bSetLastAccessedTime Then
- FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, tFileTime, Nothing))
- End If
- If bSetLastModified Then
- FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, Nothing, tFileTime))
- End If
- 'Ferme le fichier
- Call CloseHandle(lhwndFile)
- End If
- End Function
- End Module
Imports VB = Microsoft.VisualBasic
Module FileDate
Private Structure FILETIME
Dim LowDateTime As Integer
Dim HighDateTime As Integer
End Structure
Private Structure SYSTEMTIME
Dim sYear As Short
Dim sMonth As Short
Dim sDayOfWeek As Short
Dim sDay As Short
Dim sHour As Short
Dim sMinute As Short
Dim sSecond As Short
Dim sMilliseconds As Short
End Structure
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As Integer
Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Integer, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As Integer
Private Declare Function SystemTimeToFileTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME, ByRef lpFileTime As FILETIME) As Integer
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (ByRef lpLocalFileTime As FILETIME, ByRef lpFileTime As FILETIME) As Integer
'Modifi les dates d'un fichier
Public Function FileSetDate(ByVal sFileName As String, ByVal dFileDate As Date, Optional ByRef bSetCreationTime As Boolean = False, Optional ByRef bSetLastAccessedTime As Boolean = False, Optional ByRef bSetLastModified As Boolean = False) As Boolean
Const GENERIC_WRITE As Integer = &H40000000
Const OPEN_EXISTING As Short = 3
Const FILE_SHARE_READ As Short = &H1S
Const FILE_SHARE_WRITE As Short = &H2S
Dim lhwndFile As Integer
Dim tSystemTime As SYSTEMTIME
Dim tLocalTime, tFileTime As FILETIME
tSystemTime.sYear = Year(dFileDate)
tSystemTime.sMonth = Month(dFileDate)
tSystemTime.sDay = VB.Day(dFileDate)
tSystemTime.sDayOfWeek = Weekday(dFileDate) - 1
tSystemTime.sHour = Hour(dFileDate)
tSystemTime.sMinute = Minute(dFileDate)
tSystemTime.sSecond = Second(dFileDate)
tSystemTime.sMilliseconds = 0
'Ouvre le fichier pour obtenir le handle
lhwndFile = CreateFile(sFileName, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)
If lhwndFile Then
'Fichier ouvert
'Converti de l'heure systeme a l'heure locale
SystemTimeToFileTime(tSystemTime, tLocalTime)
'Converti l'heure locale en heure GMT
LocalFileTimeToFileTime(tLocalTime, tFileTime)
'Change les propriétés date/time du fichier
FileSetDate = True
If bSetCreationTime Then
FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, tFileTime, Nothing, Nothing))
End If
If bSetLastAccessedTime Then
FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, tFileTime, Nothing))
End If
If bSetLastModified Then
FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, Nothing, tFileTime))
End If
'Ferme le fichier
Call CloseHandle(lhwndFile)
End If
End Function
End Module
Sources de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
Téléchargements
Logiciels à télécharger sur le même thème :
|
|