Macros/General/005

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Macros/General/005 and the translation is 100% complete.
Other languages:
English • ‎español • ‎français • ‎italiano

Descripción

La función FileDateTime(Texto como Cadena) toma la ruta de ubicación del archivo como cadena de parámetro de entrada y devuelve los caracteres que contienen la fecha y hora de creación o última modificación de un archivo. El resultado si no se especifica ningún formato es: MM/DD/AAAA HH:MM:SS. Por ejemplo, MsgBox FileDateTime("/home/usuario1/Documentos/foo. odt").

De hecho, esta función estaba sujeta al error tdf#63306 en algunas versiones intermedias de LibreOffice.

La API de LibreOffice[1] le permite sortear este error y también ofrece otras potentes funciones de acceso a archivos.

El ejemplo a continuación muestra cómo recuperar la fecha y hora de creación o última modificación de un archivo a través del método getDateTimeModified.[2]

El método toma una URL y devuelve una estructura llamada DateTime[3]. La visualización del resultado se logra mediante la conversión a través de CDateFromUnoDateTime o mediante la función Format[4]

Código

en LibreOffice Basic:

Option Explicit

Sub DateTimeInfo()
    '''Muestra la fecha y la hora de la última modificación de un archivo específicado'''

    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  "Fecha y hora de la última información modificada desde" & 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()

Notas

  1. La API (interfaz de programación de aplicaciones) de LibreOffice permite la interacción con varios lenguajes de programación.
  2. Consulte la documentación de la API para la interfaz XSimpleFileAccess.
  3. Consulte la documentación de la API para la estructura DateTime
  4. Consulte text/sbasic/shared/03120301.html?DbPAR=BASIC la documentación para la función Format