Nel nodo I è possibile ottenere la data di modifica di un file utilizzando l'oggetto stat standard del file. C'è un modo in cui posso anche trovare la sua data di creazione? Non riesco a trovare nulla nella documentazione http://nodejs.org/api/fs.html#fs_class_fs_stats.Ottieni data di creazione del file nel nodo
risposta
Se è possibile ottenere l'ora di creazione del file dipende dal sistema operativo e dal file system. Il POSIX tradizionale definisce solo ctime, che è (piuttosto confusamente), la data di modifica dell'inode, non la data di creazione, come altre persone hanno menzionato. Tuttavia, su alcuni sistemi operativi, puoi ottenere st_birthtimespec o st_birthtime che è un vero "creare" il tempo. Dovrai controllare sys/stat.h sul tuo sistema operativo host per vedere cosa è, se possibile, disponibile.
Sfortunatamente, se è possibile accedere all'intera struttura stat da node.js è un diverso tipo di pesce. Ma almeno puoi capire se il tuo sistema operativo lo supporta e andare da lì.
Se si utilizza Linux, questa informazione non è accessibile (sebbene sia archiviata nel file system Ext4). Pertanto, fs.stat
restituisce solo i valori atime
, ctime
, mtime
.
ctime, secondo tutto il resto che ho letto, è cambiato il tempo, che è simile, anche se non del tutto identico a tempo modificato – wheresrhys
Sfortunatamente, hai ragione (pensavo che 'ctime' fosse per' tempo di creazione'). Proverò un po 'di cose, però, lo cancellerò se non troverò risposta. – Zbigniew
Dai un'occhiata a questo: [ottieni tempo di creazione del file] (http://unix.stackexchange.com/questions/24441/get-file-created-creation-time) – Zbigniew
Se qualcuno inciampa su questo dopo tutto questo tempo, come d'uso v0.12.0 Node questo:
fs.stat(path, callback)
Dove callback ha due args errare & statistiche. oggetto Stats ha proprietà
birthtime
che è la data di creazione.
link alla documentazione nodo api link
Sto usando Fedora e non c'è nessun campo 'birthtime' nel risultato fs.stat. Ma forse puoi provare a utilizzare child_process del nodo per chiamare ls --full-time. Almeno sulla mia macchina mi sta dando il risultato corretto.
risultato fs.stat:
{ dev: 64771,
mode: 33279,
nlink: 1,
uid: 1000,
gid: 1000,
rdev: 0,
blksize: 4096,
ino: 2098445,
size: 48523700,
blocks: 94776,
atime: Sat Jul 04 2015 19:01:29 GMT+1000 (AEST),
mtime: Thu Aug 22 2013 16:45:10 GMT+1000 (AEST),
ctime: Sat Jul 04 2015 19:01:29 GMT+1000 (AEST) }
ls --full tempo
-rwxrwxrwx. 1 pahuang pahuang 22M 2013-06-23 17:51:08.000000000 +1000 test_media/processed/20130621.mkv
'util.inspect (statistiche)' dovrebbe darvi le informazioni ... Che cosa si ottiene come output di questo? – PSL
3 valori di data - atime, ctime e mtime, nessuno dei quali è il tempo creato (ctime è il tempo modificato) – wheresrhys