Macros/General/005

    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:

    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