Node.js fs Modülü

Yazıda Node.js dosya ve klasör işlemlerinde kullanılan fs modülü ile ilgili bilgiler yer almaktadır.

Node.js dosya ve klasör işlemleri kurulum ile birlikte gelen fs çekirdek modülü ile yapılır.

Modül dosya ve klasör ile işlem yapmak için çeşitli senkron ve asenkron metotlara sahiptir.

Dosya okuma

Dosyayı asenkron olarak okumak için readFile metodu kullanılır.

fs.readFile(path [,options], callback);

Parametreler

  • path: Dosya yolu ve dosya adı,
  • options: Varsayılan kodlama ve okuma modunu belirtir.
  • callback: İşlem tamamlanınca çalışacak fonksiyonu belirtir. Fonksiyon iki parametre alır.

Aşağıdaki örnek asenkron olarak merhaba.txt dosyasını okur.

'use strict';

const fs = require('fs');

fs.readFile('merhaba.txt', 'utf-8', function (err, data) {

  if (err) throw err;

  console.log(data);

});

Örnek asenkron olarak merhaba.txt dosyasını okur ve okuma işlemi tamamlandığında callback parametresi ile belirtilen fonksiyonu çalıştırır.

Dosya okuma işlemi sırasında hata ile karşılaşılırsa err parametresine hata değerini atar.

Hata yoksa data parametresine dosya içeriğini atar.

Yazılan kodlar çalıştırıldığından aşağıdaki sonuca benzer bir sonuç verecektir.

node index.js
merhaba.txt dosya içeriği

Dosyayı senkron olarak okumak için readFileSync metodu kullanılır.

'use strict';

const fs = require('fs');

var data = fs.readFileSync('merhaba.txt', 'utf-8');

console.log(data);

Node.js senkron ve asenkron arasındaki fark için tıklayın.

Dosya yazma

Dosyaya yazdırma işlemi için writeFile metodu kullanılır.

Dosya varsa dosya içeriğini değiştirir yoksa yeni bir dosya oluşturur ve içine yazar.

fs.writeFile(file, data [,options], callback);

Parametreler

  • file: Dosya yolu ve dosya adı
  • data: Dosyaya yazılacak veri
  • options: Varsayılan kodlama ve yazma modunu belirtir.
  • callback: İşlem tamamlanınca çalışacak fonksiyonu belirtir. Fonksiyon tek parametre alır.

Aşağıdaki örnek asenkron olarak dosya.txt dosyasını oluşturur ve Merhaba Node.js yazar veya var olan dosyanın içeriğini Merhaba Node.js olarak değiştirir.

'use strict';

const fs = require('fs');

fs.writeFile('dosya.txt', 'Merhaba Node.js', function (err, data) {

  if (err) throw err;

  console.log('Veri başarıyla yazıldı.');

});

Aşağıdaki örnekte asenkron olarak dosya.txt dosyasını oluşturur ve Merhaba Node.js yazar veya var olan dosyanın içeriğine Merhaba Node.js verisini ekler.

'use strict';

const fs = require('fs');

fs.appendFile('merhaba.txt', 'Merhaba Dünya !', function (err, data) {

  if (err) throw err;

  console.log('İşlem başarıyla tamamlandı.');

});

Dosya açma

Dosyayı asenkron olarak açmak için open metodu kullanılır.

Dosya açıldıktan sonra dosya işlenmek üzere belleğe yüklenir.

Dosya açma moduna göre okuma ve yazma işlemleri yapılır.

fs.open(path flags [,mode], callback);

Parametreler

  • path: Dosya yolu ve dosya adı
  • flags: Dosya açma modunu belirtir.
  • mode: Dosya açma modunu belirtir.
  • callback: İşlem tamamlanınca çalışacak fonksiyonu belirtir. Fonksiyon iki parametre alır.

Aşağıdaki örnek asenkron olarak merhaba.txt dosyasını açar ve içeriğini okur.

'use strict';

const fs = require('fs');

fs.open('merhaba.txt', 'r', function (err, fd) {

  if (err) throw err;

  var tampon = new Buffer(1024);

  fs.read(fd, tampon, 0, tampon.length, 0, function (err, bytes) {

    if (err) throw err;

    if (bytes > 0) console.log(tampon.slice(0, bytes).toString());

    fs.close(fd, function (err) {

      if (err) throw err;

    });
  });
});

Dosya silme

Dosyayı asenkron olarak silmek için unlink metodu kullanılır.

fs.unlink(path, callback);

Aşağıdaki örnek asenkron olarak merhaba.txt dosyasını siler.

'use strict';

const fs = require('fs');

fs.unlink('merhaba.txt', function (err) {

  if (err) throw err;

  console.log('Dosya başarıyla silindi.');

});

Klasör oluşturma

Asenkron olarak klasör oluşturmak için mkdir metodu kullanılır.

fs.mkdir(path[, mode], callback);

Aşağıdaki örnek asenkron olarak merhaba klasörünü oluşturur.

'use strict';

const fs = require('fs');

fs.mkdir('merhaba', function () {

  console.log('Klasör başarıyla oluşturuldu.');

});

Klasör silme

Asenkron olarak klasör silmek için rmdir metodu kullanılır.

fs.rmdir(path, callback);

Aşağıdaki örnek asenkron olarak merhaba klasörünü siler.

'use strict';

const fs = require('fs');

fs.rmdir('merhaba', function () {

  console.log('Klasör başarıyla silindi.');

});

Klasör içeriğini listeleme

Asenkron olarak klasör içeriğini listelemek için readdir metodu kullanılır.

fs.readdir(path [, options], callback);

Aşağıdaki örnek asenkron olarak merhaba klasör içeriğini listeler.

'use strict';

const fs = require('fs');

fs.readdir('merhaba', function (err, files) {

  if (err) throw err;

  for (var file of files) {
    console.log(file);
  }
});

Klasör ve dosya adını değiştirme veya taşıma

Asenkron olarak klasör veya dosya adını değiştirmek veya taşımak için rename metodu kullanılır.

fs.rename(oldPath, newPath, callback);

Parametreler

  • oldPath: Dosya veya klasör adı
  • newPath: Dosya veya klasörün yeni adı
  • callback: İşlem tamamlanınca çalışacak fonksiyonu belirtir. Fonksiyon tek parametre alır.

Aşağıdaki örnek asenkron olarak merhaba adlı dosya veya klasörün adını değiştirir.

'use strict';

const fs = require('fs');

fs.rename('merhaba', 'merhaba-dunya', function (err) {

  if (err) throw err;

});

Node.js Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!