Änderungsdatum & -zeit einer Datei anzeigen
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Spende
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
- ↑ Die LibreOffice API (Application Programming Interface) erlaubt Interaktionen mit verschiedenen Programmiersprachen.
- ↑ Siehe die API Dokumentation für das XSimpleFileAccess interface.
- ↑ Siehe die API Dokumentation für die DateTime struct