Re: [AS] Changer la date de création d'un fichier

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Daniel Varlet
Date:  
À: La liste AppleScript Francophone
Sujet: Re: [AS] Changer la date de création d'un fichier

Le 27 mars 08 à 09:03, Patrick Proniewski a écrit :

> On 26 mars 08, at 22:46, Daniel Varlet wrote:
> ...
>> Pour info il existe encore une autre date de fichier... Ce qui fait 5
>> maintenant à ma connaissance...
>> Date de dernière ouverture avec LaunchServices.
>
> les gros sales...


Pourquoi? Non, le principe est même très utile. (Mais pas très
pratique à récupérer en AS...)
En effet, ça permet de savoir quand un fichier a "vraiment" été ouvert
dans la vraie vie.

Ça me permet de revenir sur les 5 dates de fichier/dossier...

Ne me dis pas (non, ne me le dis pas, ça mettrait cette intro en
l'air) que tu ne te mélanges jamais les pieds avec dates UNIX: accès,
modification, change.
Elles sont modifiées en fonction des outils (UNIX) qui ont été employés.


Rappel dates UNIX (source: <x-man-page://2/stat>)


st_atime Time when file data last accessed. Changed by the
mknod(2), utimes(2) and read(2) system calls.

st_mtime Time when file data last modified. Changed by
the
mknod(2), utimes(2) and write(2) system calls.

st_ctime Time when file status was last changed (inode
data modi-
fication). Changed by the chmod(2), chown(2),
link(2),
mknod(2), rename(2), unlink(2), utimes(2) and
write(2)
system calls.

st_birthtime Time of file creation. Only set once when the
file is
created. This field is only available in the 64
bit
variants. On filesystems where birthtime is not
avail-
able, this field holds the ctime instead.

Si je ne me plante pas, c'est Leopard qui est en 64 bit et donc pas de
st_birthtime avant (et c'est ce que j'ai constaté chez moi).

Pour que ce soit moins abscons, la commande ls (format long) affiche
ces dates de fichier: last modified est le défaut. l'option -c
affichera last changed. -u affichera last accessed


Pour en revenir à AS et donc aux dates classiques "Apple".

Création date        correspond à st_birthtime (file creation)
Modification date    correspond à st_mtime (last modified)

Miracle! Alléluia! Ça à l'air de correspondre vraiment!

Le petit nouveau (qui date quand même de Mac OS X v10.4) vient de mds
(et consorts, utilisés par Spotlight, made in Apple).

    Last used    kMDItemLastUsedDate    Dernière ouverture "réelle" du fichier/
dossier avec une application.

Ne pas le confondre donc avec st_atime (last accessed) qui lui est
archi-sensible au moindre courant d'air (de lecture).

Petit résumé simplificateur mnémotechnique :

    last accessed    (dernière lecture; UNIX)
    last modified    (dernière écriture; UNIX)
    last changed    (dernière écriture ou dernière modif de métadatas
(droits, renommage, linkage); UNIX, Apple, AS)
    created        (création du fichier/dossier; UNIX, Apple, AS)
    last used         (dernière ouverture avec une appli; Apple)

Attention avec last accessed qui est modifié par toute lecture du
fichier.
Ça m'a perturbé que last accessed soit modifié alors que j'avais
simplement écrit ou changé des droits d'accès. Je ne comprenais plus
rien...
Un peu de logique et un espresso(*) plus tard, le traître invisible a
été démasqué... Spotlight (mds et Cie) va lire le fichier le plus
rapidement possible, dès qu'il y a un changement (écriture et/ou
métadatas), pour mettre à jour sa base de données. Et last accessed
est modifié à ce moment-là.


> je pensais naïvement que c'était la date de dernier
> accès de l'inode !
>
> merci pour ces précisions.


Du coup j'en ai rajouté.
Ça m'a permis de (me) clarifier un peu les 3 dates UNIX last
accessed    , last modified, last changed. Et voir le rôle de Spotlight
qui "faussait" mes essais...
Espérant que ça puisse profiter à d'autres.

(*) On ne sait jamais: je cherche une machine expresso de
remplacement. Avis aux connaisseurs: des idées?

A+
_______________________________________________
Applescript_fr mailing list
Applescript_fr@???
http://listes.patpro.net/mailman/listinfo/applescript_fr