Ottenere informazioni sui file in Node.js

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.

Torna su