Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


Bonjour,

Et merci. Cela fonctionne parfaitement avec getfolder.

J'essayerai peut-être plus tard de réécrire avec la fonction en basic.

Bonne journée,
Claude

------- Message original --------
*Sujet: *[INTERNET] Re: [fr-users] Macro : Lister les propriétés d'un dossier
*De : *Jean-Francois Nifenecker <jean-francois.nifenecker@laposte.net>
*Pour : *PREF31 Libreoffice <pref-open-office@haute-garonne.gouv.fr>, users LibreOffice LO <users@fr.libreoffice.org>
*Date : *22/07/2017 08:46
Bonjour Claude,

Le 20/07/2017 à 16:15, PREF31 Libreoffice a écrit :

oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
Cible = oObj.createInstance("Scripting.fileSystemObject")
proprietes=Cible.GetFile(Fichier)

Je n'arrive pas à trouver l'équivalent pour les répertoires.

Quelqu'un aurait-il la solution ?


Je complète ma réponse précédente.

Comme dit, les objets FSO sont des objets Windows. De fait, l'usage des macros qui les appellent n'est possible que dans cet OS.

Je conseille très vivement de rester multi plate-formes, tout comme LibO l'est aussi.

Voici une fonction native en Basic (donc multi plate-formes) qui permet de retrouver la date et l'heure de modification d'un répertoire. Vous remarquerez qu'elle fonctionne pour les fichiers (comme son nom le suggère) et pour les répertoires (puisque un répertoire est en fait un fichier).

8< ------------------------------------------------------------

Function GetFileDateTimeModified(ByRef pFileName As String) As Date
'Returns the date of the last modification for pFileName.
'Returns the date, or 0 if the operation couldn’t be executed.

    Dim lo_Date As new com.sun.star.util.DateTime
    Dim l_Date As Date
    Dim l_URLName As String        'file name in URL form
    Dim lo_SFA As Object        'the simple file access object

    On Local Error GoTo FEXIT
    l_Date = 0
    l_URLName = ConvertToURL(pFileName)
    If FileExists(l_URLName) Then
        lo_SFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
        lo_Date = lo_SFA.getDateTimeModified(l_URLName)
        l_Date = CDateFromUnoDateTime(lo_Date)
    End If

    FEXIT:
    GetFileDateTimeModified = l_Date
End Function 'GetFileDateTimeModified

------------------------------------------------------------- >8

Le coeur de cette fonction repose sur un objet SFA. Si vous creusez l'API SFA vous trouverez encore bien des propriétés intéressantes :)
Voir :
https://www.openoffice.org/api/docs/common/ref/com/sun/star/ucb/XSimpleFileAccess.html


Exemple d'utilisation :
MyDir = GetCurrentDirectory()
MyDate = GetFileDateTimeModified(MyDir)

NB : GetCurrentDirectory() est une fonction de mon cru qui retourne le répertoire courant pour le document actuel



Bien cordialement,



--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.