Aller au contenu

Propriétés d'un dossier


Messages recommandés

Posté(e)

Bonjour,

Je sais récupérer une liste de dossiers avec "(vl-directory-files ..." mais je voudrais également obtenir la date de création et de modification de ces dossiers.

Si quelqu'un à une petite idée ...

Merci

L56

 

Posté(e)

Coucou,

Tu peux déjà essayer de regarder du côté de la fonction (vl-file-systime) afin d'obtenir la date de la dernière modification. Autrement, pourquoi passer par AutoCAD pour récupérer ces infos ? Ne serait-il pas plus simple d'utiliser un script Windows pour récupérer des données Windows ? ^^"

Bisous,
Luna

Posté(e)

Bonjour @l56

Une petite question pour ne pas travailler dans le flou :
C'est la date de modification de quoi qui est cherchée ? Les DOSSIERS ou les FICHIERS.
Il est écrit "dossiers" dans la question, mais je pense qu'il s'agit des "fichiers".

Le vocabulaire est très important (comme toujours)

Amicalement

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

l’équivalent en batch de

dir *.* / on /tc

et de

dir *.* / on /tw

Avec ces lignes de codes j'obtiens fichiers ET dossiers

mais seul les dossiers m’intéressent

Posté(e)

 

Bon je vais pas aider ici mais bon ... en vba :
Dim fso As New Scripting.FileSystemObject
Dim fld As Scripting.Folder
    Set fld = fso.GetFolder("c:\windows") 'a mettre en variable le dossier
    DATE_CREATION = fld.DateCreated

Posté(e)

Merci à Olivier et Curlygoth, j'ai fini par obtenir l'information.

(setq wscript (vlax-create-object "WScript.Network"))
(setq fso (vlax-create-object "Scripting.FilesystemObject"))
(setq gfd (vlax-invoke-method fso 'GetFolder "C:\\windows"))
(setq date_de_creation   (vlax-get-property gfd 'DateCreated)) -> 43806.4
(setq date_de_modification  (vlax-get-property gfd 'DateLastModified)) -> 44481.9

Mais il me manque encore quelque chose, c'est le format.

Comment transformer ces dates dans le format suivant : jj/mm/aaaa - hh:mm:ss

Posté(e)

C'est une très bonne nouvelle.

Entre le nombre de jours qui diffèrent suivant les mois et les années bissextiles, le calcul me semble un peu compliqué.

J'avais imaginé qu'il existait une commande VBA capable de traiter les commandes liés aux dates 'DateCreated, DateLastAccessed, DateLastModified ....

Etrange ...

 

Merci en tous cas !

 

Posté(e)

Bonjour @l56

Pourquoi parles-tu de VBA ?

J'ai trouvé un truc simple dans une de mes anciennes routines en changeant la référence à 1900 en calendrier Julien par la constante de la date du 01/01/1900
 

; date1 = "44253.4264583334"
(setq date11 (rtos (+ 2415019 (atof date1)) 2 15))
(setq dateformat (menucmd (strcat "m=$(edtime," date11 "," "DD.MO.YYYY HH:MM:SS" ")")))

Je vais travailler plus avant sur les dates pour peaufiner da-code.fr avec ces expressions DIESEL bien utiles.

Amicalement

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)
Il y a 7 heures, l56 a dit :

Comment transformer ces dates dans le format suivant : jj/mm/aaaa - hh:mm:ss

Bonsoir,

En lisp il y a le fichier julian.lsp de chez AutoDesk, qui peut t'aider pour formater une date au format Julien en reprenant l'exemple donné par Didier une fois le fichier charger

_$ (setq date1 "44253.4264583334")
"44253.4264583334"
_$ (JTOC (+ 2415019 (atof date1)))
(2021 2 26 10 14 6.00002)

Retourne la date sous forme de liste au format (aaaa mm jj hh mm ss) à retravailler pour avoir l'affichage désiré

Sinon en fin de fichier pour un affichage plus spécifique tu peux t'inspirer des dernières lignes du fichier dans la routine (C:date)

(setq date1 "44253.4264583334")

(setq cdate (jtod (+ 2415019 (atof date1)))
         c (fix cdate)
         y (/ c 10000)              ; Get year
         m (rem (/ c 100) 100)      ; Ger month
         d (rem c 100)              ; Get day
         c (- cdate (fix cdate))    ; Strip date from date/time
         c (fix (* c 1000000000))   ; Scale time to get HHMMSSmmm integer
         hh (/ c 10000000)          ; Get hours
         mm (rem (/ c 100000) 100)  ; Get minutes
         ss (rem (/ c 1000) 100)    ; Get seconds
         msec (rem c 1000)          ; Get milliseconds
   )

;; Comment transformer ces dates dans le format suivant : jj/mm/aaaa - hh:mm:ss
(strcat (itoa d) "/" (itoa m) "/" (itoa d) " - " (if (> hh 9) "" "0") (itoa hh) ":" (if (> mm 9) "" "0") (itoa mm) ":" (if (> ss 9) "" "0") (itoa ss))

Pour l'exemple dans la console Vlisp:

_$ (strcat (itoa d) "/" (itoa m) "/" (itoa y) " - " (if (> hh 9) "" "0") (itoa hh) ":" (if (> mm 9) "" "0") (itoa mm) ":" (if (> ss 9) "" "0") (itoa ss))
"26/2/2021 - 10:14:06"

 

julian.lsp

  • Upvote 1

Apprendre => Prendre => Rendre

Posté(e)

Bonjour,

Merci beaucoup pour ces explications.

Le fichier Julian.lsp me semble être la réponse à toutes les questions concernant les dates !!

Merci encore

Bonne journée

L56

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité