Änderungsdatum & -zeit einer Datei anzeigen

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/General/005 and the translation is 100% complete.


    Other languages:

    Beschreibung

    Die Funktion FileDateTime(Text As String) nimmt einen Dateipfad als Eingabeparameter und gibt eine Zeichenkette mit Datum und Zeit der Erstellung bzw. der letzten Änderung der Datei zurück. Wenn kein anderes Format angegeben ist, hat das Ergebnis das Format MM/DD/YYYY HH:MM:SS. Z. Bsp. MsgBox FileDateTime("/home/user1/Documents/foo.odt").

    Diese Funktion gab in einigen Zwischenversionen von LibreOffice tatsächlich Anlass zur Fehlerbehebung tdf#63306.

    Die LibreOfffice API[1] erlaubt es, den Fehler zu umgehen und bietet auch andere mächtige Dateizugriffsfunktionen.

    Das folgende Beispiel zeigt, wie das Datum und die Zeit der Erstellung oder der letzten Änderung einer Datei über die Methode getDateTimeModified ermittelt werden kann.[2]

    Die Methode fordert einen URL und gibt eine struct genannt DateTime zurück[3].

    Code

    In LibreOffice Basic:

    Option Explicit
    
    Sub DateTimeInfo()
        '''zeigt Datum und Zeit der letzten Änderung für eine angegebene Datei an'''
    
        Dim oSFA        As Object
        Dim oDateFile   As New com.sun.star.util.DateTime
        Dim sUrl        As String
        
        sUrl = "/home/user1/Documents/foo.odt"
        oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
        
        oDateFile = oSFA.getDateTimeModified(convertToURL(sUrl))
        
        MsgBox CDateFromUnoDateTime(oDateFile),0, "DateTimeInfo()"
        
        With oDateFile
            MsgBox  "Datum & Zeit der letzten Änderung von" & CHR$(10) & _
                    sURL & " :"  &  CHR$(10) & CHR$(10) & _
                    .year & format(.month, "-00-") & format(.day, "00") & " " & _
                    format(.hours, " \@\ 00") & format(.minutes, "\:00\:") & format(.seconds, "00") _
                    ,0, "DateTimeInfo()"
        End With
        
    End Sub ' DateTimeInfo()

    ODT Dateien, um das Makro zu testen

    Hinweise

    1. Die LibreOffice API (Application Programming Interface) erlaubt Interaktionen mit verschiedenen Programmiersprachen.
    2. Siehe die API Dokumentation für das XSimpleFileAccess interface.
    3. Siehe die API Dokumentation für die DateTime struct