Visualizza la data e l'ora in cui un file è stato creato o modificato per l'ultima volta

    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:

    Descrizione

    La funzione FileDateTime(Testo come stringa) accetta il percorso del file come stringa del parametro di input e restituisce i caratteri contenenti la data e l'ora della creazione o dell'ultima modifica di un file. Il risultato se non viene specificato alcun formato è: MM/DD/YYYY HH:MM:SS. Ad esempio MsgBox FileDateTime("/home/user1/Documents/foo.odt").

    Questa funzione era infatti soggetta al bug tdf#63306 in alcune versioni intermedie di LibreOffice.

    L'API di LibreOffice[1] consente di aggirare questo bug e offre anche altre potenti funzioni di accesso ai file.

    L'esempio mostrato di seguito mostra come recuperare la data e l'ora di creazione o ultima modifica per un file tramite il metodo getDateTimeModified.[2]

    Il metodo accetta un URL e restituisce una struttura chiamata DateTime[3]. La visualizzazione del risultato si ottiene mediante conversione tramite CDateFromUnoDateTime o tramite la funzione Format[4].

    Codice

    In LibreOffice Basic:

    Option Explicit
    
    Sub DateTimeInfo()
        '''Visualizza data e ora dell'ultima modifica per un file specificato'''
    
        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  "Data e ora dell'ultima modifica delle informazioni da" & 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()

    Esempio di file ODT per testare la macro

    Note

    1. L'API di LibreOffice (Application Programming Interface) consente l'interazione con vari linguaggi di programmazione.
    2. Si veda /ref/interfacecom_1_1sun_1_1star_1_1ucb_1_1XSimpleFileAccess.html Documentazione API per l'interfaccia XSimpleFileAccess.
    3. Si veda la documentazione dell'API per la struttura DateTime
    4. Si veda la text/sbasic/shared/03120301.html?DbPAR=BASIC documentazione per la funzione Format