Estrarre informazioni su un file in Node.js può essere utile in molte situazioni, ad esempio per monitorare lo stato di un file, verificare i permessi o semplicemente analizzare i suoi metadati. Node.js offre diversi metodi e librerie integrate per recuperare informazioni dettagliate sui file, come dimensioni, tipo, data di modifica, e molto altro. In questo articolo, vedremo come usare questi strumenti per ottenere facilmente informazioni sui file.
Il modulo principale per gestire i file in Node.js è fs
(file system). Questo modulo è incluso di default in Node.js, quindi non è necessario installare alcun pacchetto aggiuntivo. Il modulo fs
offre diverse funzioni per gestire file e directory.
La funzione fs.stat()
è una delle più utili per ottenere informazioni su un file. fs.stat()
fornisce vari metadati del file, come dimensioni, data di modifica, permessi, e molto altro.
const fs = require('fs');
fs.stat('path/to/file.txt', (err, stats) => {
if (err) {
console.error('Errore:', err);
return;
}
console.log('Informazioni sul file:');
console.log('Dimensione:', stats.size); // Dimensione del file in byte
console.log('È un file:', stats.isFile());
console.log('È una directory:', stats.isDirectory());
console.log('Data di creazione:', stats.birthtime); // Data di creazione
console.log('Data ultima modifica:', stats.mtime); // Data ultima modifica
});
Proprietà chiave di stats
:
- size: la dimensione del file in byte.
- isFile(): restituisce
true
se è un file. - isDirectory(): restituisce
true
se è una directory. - birthtime: data di creazione del file.
- mtime: data dell'ultima modifica.
Se preferisci lavorare con le Promises
o utilizzare async/await
, puoi usare fs.promises.stat
, che restituisce una Promise
. Questa sintassi è spesso più leggibile, soprattutto per codice asincrono.
const fs = require('fs').promises;
async function getFileStats(filePath) {
try {
const stats = await fs.stat(filePath);
console.log('Informazioni sul file:');
console.log('Dimensione:', stats.size);
console.log('È un file:', stats.isFile());
console.log('È una directory:', stats.isDirectory());
console.log('Data di creazione:', stats.birthtime);
console.log('Data ultima modifica:', stats.mtime);
} catch (error) {
console.error('Errore:', error);
}
}
getFileStats('path/to/file.txt');
Il modulo fs
consente anche di controllare i permessi di un file attraverso la proprietà mode
di fs.stat()
. Questa proprietà contiene un valore numerico che rappresenta i permessi del file.
fs.stat('path/to/file.txt', (err, stats) => {
if (err) {
console.error('Errore:', err);
return;
}
const permessi = stats.mode & 0o777; // Estrae i permessi in formato ottale
console.log('Permessi:', permessi.toString(8)); // Converte in stringa ottale
});
Qui, 0o777
è una maschera ottale che seleziona solo i permessi. Il risultato sarà una stringa ottale come 644
o 755
, che rappresenta i permessi di lettura, scrittura ed esecuzione per l'utente, il gruppo e altri utenti.
Conclusione
Node.js offre diversi strumenti potenti per lavorare con i file e ottenere le informazioni necessarie. Le funzionalità del modulo fs
offrono una solida base per estrarre informazioni dettagliate sui file.