Referință rapidă

Ghid Rapid Modul fs Node.js

Un ghid rapid de referinta pentru modulul fs Node.js: citire si scriere asincrona si sincrona, monitorizare fisiere, metadate si directoare.

· Publicat

Modulul fs (File System) din Node.js ofera API-uri pentru interactiunea cu sistemul de fisiere local folosind Promises, callback-uri sau executie sincrona.

API Bazat pe Promisiuni (fs/promises)

const fs = require('fs/promises');
// import fs from 'node:fs/promises';

// Citire fisier ca sir UTF-8
const content = await fs.readFile('data.txt', 'utf8');

// Scriere sau inlocuire continut fisier
await fs.writeFile('output.txt', 'Hello World', 'utf8');

// Adaugare continut la sfarsitul fisierului
await fs.appendFile('log.txt', 'New entry\n', 'utf8');

// Verificare existenta si permisiuni de acces
try {
  await fs.access('config.json');
} catch {
  console.log('Fisierul nu exista sau nu poate fi accesat');
}

API Sincron

const fs = require('fs');

const data = fs.readFileSync('input.txt', 'utf8');
fs.writeFileSync('output.txt', data);
fs.appendFileSync('output.txt', '\nappended');

const exists = fs.existsSync('file.txt');

Metadate și Statistici Fișier (fs.stat)

const stats = await fs.stat('file.txt');

stats.isFile();            // -> fisier obisnuit (true / false)
stats.isDirectory();       // -> director (true / false)
stats.isSymbolicLink();    // -> legatura simbolica (true / false)
stats.size;                // Dimensiunea fisierului in octeti
stats.mtime;               // Data si ora ultimei modificari

Operațiuni pe Directoare

// Listeaza intrarile din director
const files = await fs.readdir('src/');

// Creare recursiva de directoare
await fs.mkdir('build/assets/css', { recursive: true });

// Stergere recursiva de directoare
await fs.rm('dist/', { recursive: true, force: true });

Monitorizarea Sistemului de Fișiere (fs.watch)

const fs = require('fs');

const watcher = fs.watch('src/', { recursive: true }, (eventType, filename) => {
  console.log(`Event: ${eventType} on ${filename}`);
});

// Opreste monitorizarea
watcher.close();

Descriptori de Fișiere (File Descriptors)

const fs = require('fs/promises');

// Deschidere doar pentru citire
const filehandle = await fs.open('archive.bin', 'r');

// Alocare buffer de 1024 octeti
const buffer = Buffer.alloc(1024);

// Citire octeti in buffer
const { bytesRead } = await filehandle.read(buffer, 0, 1024, 0);

await filehandle.close();

Referințe

Subiecte conexe