Come fs.stat() funziona?
Se si desidera utilizzare una funzione di callback fs/asincrono, non utilizzare la versione sincrona, utilizzare fs.stat():
var fs = require('fs');
console.log("+++++++++++++++++++++++++++++++++++++++");
fs.stat(pathname, function(err, stats) {
console.log(stats.isDirectory());
});
console.log("+++++++++++++++++++++++++++++++++++++++");
Ci sono più informazioni su fs.stat(). È possibile ottenere un sacco di informazioni circa l'oggetto principale:
fs.stat(path, function(err, stats) {
console.log(stats)
}
uscita:
{ dev: 2049,
ino: 305352,
mode: 16877,
nlink: 12,
uid: 1000,
gid: 1000,
rdev: 0,
size: 4096,
blksize: 4096,
blocks: 8,
atime: '2009-06-29T11:11:55Z',
mtime: '2009-06-29T11:11:40Z',
ctime: '2009-06-29T11:11:40Z' }
un sacco di elementi è spesso inutile per noi, sì. Ma qui è il significato di tutte queste variabili, according to this article:
- dev: ID del dispositivo contenente il file
- modalità: protezione dei file
- nlink: numero di hard link al file
- uid: ID utente del proprietario del file.
- gid: ID gruppo del proprietario del file.
- rdev: ID dispositivo se il file è un file speciale.
- blksize: dimensioni blocco per I/O del file system.
- ino: Numero di inode del file. Un inode è una struttura di dati del file system che -
- memorizza le informazioni su un file.
- dimensioni: dimensioni totali del file in byte.
- blocchi: numero di blocchi assegnati per il file.
- atime: data oggetto che rappresenta l'ultimo orario di accesso del file.
- mtime: data oggetto che rappresenta l'ora dell'ultima modifica del file.
- ctime: data oggetto che rappresenta l'ultima volta in cui l'inode del file è stato modificato.
È possibile anche, come nodeJS documentation says, ottenere ulteriori informazioni come:
stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isSymbolicLink() (only valid with fs.lstat())
stats.isCharacterDevice()
stats.isFIFO()
stats.isSocket()
Chi stats.isSymbolicLink(), c'è un'altra funzione di fs.stat, chiamato fs.lstat(), e qui è la differenza tra loro:
stat
segue i collegamenti simbolici. Quando viene assegnato un percorso che è un collegamento simbolico, restituisce la statistica del target del collegamento simbolico.
lstat
non segue i collegamenti simbolici. Quando viene fornito un percorso che è un link simbolico, restituisce la stat del link simbolico e non il suo target.
eccellente, grazie! –