Macros

From The Document Foundation Wiki
Jump to: navigation, search

Comment connaître la date et l'heure de création ou de dernière modification d'un fichier ?

Le langage dispose de la fonction FileDateTime qui renvoie une chaîne de caractères contenant la date et l'heure de création, ou de dernière modification, d'un fichier. Le résultat est renvoyé au format JJ/MM/AAAA HH:MM:SS.


Syntaxe :

  • FileDateTime (Text As String)

Paramètres :

  • Text : expression au format chaîne de caractères contenant une spécification de fichier non ambiguë (sans caractères génériques). Vous pouvez également utiliser la notation URL.

Exemple :

Sub ExampleFileDateTime
    MsgBox FileDateTime("C:\autoexec.bat")
End Sub

Cette fonction a fait l'objet d'un bug (cf. tdf#63306) dans quelques versions intermédiaires de LibreOffice.

L'API[1] permet de contourner ce bug et offre par ailleurs d'autres fonctions performantes d'accès aux fichiers.

L'exemple suivant montre comment récupérer la date et l'heure de création ou de dernière modification d'un fichier via la méthode getDateTimeModified[2].


Précisions :

  • La méthode attend un Url,
  • Elle retourne une structure de type DateTime[3],
  • L'affichage du résultat est mis en forme via la conversion par CDateFromUnoDateTime ou par la fonction Format (voir l'aide)
sub LibODateTime
dim oSFA as object
dim oDateFile as new com.sun.star.util.DateTime
dim sUrl as string

sUrl = "c:\test.odt"
oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")

oDateFile = oSFA.getDateTimeModified(convertToURL(sUrl))
print CDateFromUnoDateTime(oDateFile)

'with oDateFile
'  print format(.day, "00\/") & format(.month, "00\/") & .year &_
'           format(.hours, "\ 00\:") & format(.minutes, "00\:") & format(.seconds, "00")
'end with

end sub

Notes :

  1. LibreOffice fournit une API (Application Programming Interface) permettant de contrôler les composants par différents langages de programmation.
  2. Voir la documentation de l'API pour l'interface XSimpleFileAccess.
  3. Voir la documentation de l'API.