title image


Smiley Re: Datum zur Datei auslesen
Wenn du die Dateien gleich mit den API's FindFirstFile und FindNextFile suchst, bekommst du gleich bei jeder Datei die entsprechenden Infos mitgeliefert.

Man braucht dann nur noch mit FileTimeToLocalFileTime und FileTimeToSystemTime umrechnen.

Re: wie liest man aus einem Ordner alle .txt Dateien ein ...



Wenn du mit dem FilesystemObject suchst, hast du diese Infos in den entsprechenden Eigenschaften der jeweiligen File-Objekte



Wenn du Dir zum suchen verwendest, mußt du diese Infos für jede Datei wieder neu holen (Dir verwendet intern auch FindFirstFile/FindNextFile, schmeißt aber alles außer dem Pfad und Dateinamen weg)



Performancemäßig ist die Suche mit FindFirstFile/FindNextFile die schnellste Möglichkeit.





Dateizeiten bestimmen:

Einen Button und eine Textbox auf eine Form und in der Textbox Pfad und Dateiname eingeben:







Option Explicit



Private Const HFILE_ERROR = -1

Private Const GENERIC_READ = &H80000000



Private Const OFS_MAXPATHNAME = 128

Private Type OFSTRUCT

   cBytes As Byte

   fFixedDisk As Byte

   nErrCode As Integer

   Reserved1 As Integer

   Reserved2 As Integer

   szPathName(OFS_MAXPATHNAME) As Byte

End Type





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



Private Declare Function OpenFile Lib "kernel32" (ByVal lpszFile As String, lpOpenBuff As OFSTRUCT, ByVal fuMode 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 Filetime, lpLastAccessTime As Filetime, lpLastWriteTime As Filetime) As Long

Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As Filetime, lpSystemTime As SYSTEMTIME) As Long

Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As Filetime, lpLocalFileTime As Filetime) As Long

Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As Filetime, lpFileTime As Filetime) As Long



Private Sub Command1_Click()

Dim datEr As Date

Dim datAe As Date

Dim datZu As Date



   ReadFileTime Me.Text1.Text, datEr, datAe, datZu



   MsgBox "Erstellt: " & datEr & vbCrLf & "Geändert: " & datAe & vbCrLf & "Zugriff: " & datZu



End Sub







Public Sub ReadFileTime(ByRef strFile As String, ByRef datCreate As Date, ByRef datChanged As Date, ByRef datAccess As Date)



Dim ofS As OFSTRUCT

Dim hdlFile As Long

Dim ftCreationTime As Filetime

Dim ftLastAccessTime As Filetime

Dim ftLastWriteTime As Filetime

Dim ftLocalTime As Filetime



Dim lpSystemTime As SYSTEMTIME



   hdlFile = OpenFile(strFile, ofS, GENERIC_READ)

   If hdlFile <> HFILE_ERROR Then

      GetFileTime hdlFile, ftCreationTime, ftLastAccessTime, ftLastWriteTime



      FileTimeToLocalFileTime ftCreationTime, ftLocalTime

      FileTimeToSystemTime ftLocalTime, lpSystemTime

      With lpSystemTime

         datCreate = CDate(.wDay & "." & .wMonth & "." & .wYear & " " & .wHour & ":" & .wMinute & ":" & .wSecond)

      End With



      FileTimeToLocalFileTime ftLastWriteTime, ftLocalTime

      FileTimeToSystemTime ftLocalTime, lpSystemTime

      With lpSystemTime

         datChanged = CDate(.wDay & "." & .wMonth & "." & .wYear & " " & .wHour & ":" & .wMinute & ":" & .wSecond)

      End With



      FileTimeToLocalFileTime ftLastAccessTime, ftLocalTime

      FileTimeToSystemTime ftLocalTime, lpSystemTime

      With lpSystemTime

         datAccess = CDate(.wDay & "." & .wMonth & "." & .wYear & " " & .wHour & ":" & .wMinute & ":" & .wSecond)

      End With



   End If

   CloseHandle hdlFile



End Sub










Gruß
Gaga

___________________________________________________________________

Profilösungen für VB6
wenn nicht anders angegeben, sind alle Codebeispiele nicht getestet, nur getippt


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: