vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Dateisystem22.03.05
GetFileTime-Funktion

Diese Funktion ermittelt das Datum einer Datei an dem sie erstellt, modifiziert oder wann das letzte Mal auf sie zugegriffen wurde.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  24.640 

Deklaration:

Declare Function GetFileTime Lib "kernel32.dll" ( _
  ByVal hFile As Long, _
   lpCreationTime As FILETIME, _
  lpLastAccessTime As FILETIME, _
  lpLastWriteTime  As FILETIME) As Long

Beschreibung:
Diese Funktion ermittelt das Datum einer Datei an dem sie erstellt, modifiziert oderwann das letzte Mal auf sie zugegriffen wurde.

Parameter:
hFileErwartet ein Handle der Datei, deren Daten ermittelt werden sollen.
lpCreationTimeErwartet eine FILETIME-Strukur, die mit dem Erstellungsdatum der Datei gefüllt wird.
lpLastAccessTimeErwartet eine FILETIME-Strukur, die mit dem Datum des letzten Zugriffs der Datei gefüllt wird.
lpLastWriteTimeErwartet eine FILETIME-Strukur, die mit dem Datum der letzten Modifikation der Datei gefüllt wird.

Rückgabewert:
Ist die Funktion erfolgreich, so ist die Rückgabe "ungleich 0" andernfalls ist die Rückgabe "0". RufenSie die GetLastError-Funktion für erweiterte Fehlerinformationen auf.

Beispiel:

Private Declare Function CreateFile Lib "kernel32.dll" _
  Alias "CreateFileA"  ( _
  ByVal lpFileName As String, _
  ByVal dwDesiredAccess As Long, _
  ByVal  dwShareMode As Long, _
  lpSecurityAttributes As Any, _
  ByVal  dwCreationDisposition As Long, _
  ByVal dwFlagsAndAttributes As Long, _
  ByVal  hTemplateFile As Long) As Long
Private Declare Function GetFileTime Lib "kernel32" ( _
  ByVal hFile As Long, _
   lpCreationTime As FILETIME, _
  lpLastAccessTime As FILETIME, _
  lpLastWriteTime  As FILETIME) As Long
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 CloseHandle Lib "kernel32.dll" ( _
  ByVal hObject As  Long) As Long
 
Private Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
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
 
' CreateFile dwDesiredAccess Konstanten
Private Const GENERIC_READ = &H80000000 ' nur lesen
Private Const GENERIC_WRITE = &H40000000 ' nur schreiben
 
' CreateFile dwShareMode Konstanten
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
 
' CreateFile dwCreationDisposition Konstanten
Private Const CREATE_ALWAYS = 2 
' erstellt eine neue Datei und überschreibt bereits vorhandene
Private Const CREATE_NEW = 1 
' erstellt eine neue Datei nur dann, wenn sie noch nicht existiert
Private Const OPEN_ALWAYS = 4 
' öffnet eine bereits vorhandene Datei und erstellt eine Datei, falls nicht vorhanden
Private Const OPEN_EXISTING = 3 ' öffnet eine bereits vorhandene Datei
Private Const TRUNCATE_EXISTING = 5 
' öffnet eine bereits vorhandene Datei und löscht deren Inhalt.
 
' CreateFile dwFlagsAndAttributes
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20 ' Archiv-Datei
Private Const FILE_ATTRIBUTE_HIDDEN = &H2 ' Versteckt
Private Const FILE_ATTRIBUTE_NORMAL = &H80 ' Normal
Private Const FILE_ATTRIBUTE_READONLY = &H1 ' Schreibgeschützt
Private Const FILE_ATTRIBUTE_SYSTEM = &H4 ' Systemdatei
Private Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000 
' Datei wird beim Schließen gelöscht
Private Const FILE_FLAG_NO_BUFFERING = &H20000000 
' es werden keine Puffer oder Caches benutzt
Private Const FILE_FLAG_OVERLAPPED = &H40000000 
' erlaubt gleichzeitiges Lesen und Schreiben, nicht bei Windows 95, 98, CE
Private Const FILE_FLAG_POSIX_SEMANTICS = &H1000000 ' Erlaubt Case-Sensitive-Dateinamen 
Private Const FILE_FLAG_RANDOM_ACCESS = &H10000000 
' richtet den Puffer für einen Random-Access-Zugriff aus
Private Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000 
' richtet den Puffer für einen sequenziellen Zugriff aus
Private Const FILE_FLAG_WRITE_THROUGH = &H80000000 
' nutzt keine Platten-Cache und schreibt direkt in die Datei
' Lesen der Datumsinformationen einer Datei (Erstellungsdatum)
Private Sub Command1_Click()
  Dim hFile As Long, Retval As Long, CTime As FILETIME, STime As  _
  SYSTEMTIME, Dummi As FILETIME
 
  ' Datei öffnen und nicht erstellen, wenn noch nicht vorhanden
  hFile = CreateFile("c:\autoexec.bat", GENERIC_READ, FILE_SHARE_READ,  _
  ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0&)
 
  If hFile = -1 Then
    MsgBox "Die Datei wurde nicht gefunden", vbOKOnly +  _
    vbInformation, "Fehler"
    Exit Sub
  End If
 
  ' Erstellungsdatum auslesen
  GetFileTime hFile, CTime, Dummi, Dummi
 
  ' konvertieren zur lokalen Zeitzone
  FileTimeToLocalFileTime CTime, CTime
 
  ' in Systemzeit umwandeln
  FileTimeToSystemTime CTime, STime
 
  ' ausgeben
  MsgBox "Die datei wurde erstellt am: " & STime.wDay & "." &  _
  STime.wMonth & "." & STime.wYear, vbOKOnly + vbInformation, "Erstellt am" 
 
  ' Ressourcen wieder frei geben
  CloseHandle hFile
End Sub

Diese Seite wurde bereits 24.640 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel