CodeBlanks Logo Icon CodeBlanks

existsSync

fs.existsSync ile dosya varlığını kontrol etmeyi öğrenirsin.

existsSync nedir?

fs.existsSync bir dosya veya klasörün var olup olmadığını senkron olarak kontrol eder; true ya da false döndürür. fs/promises'te karşılığı yoktur; fs'in doğrudan yöntemidir.

import { existsSync } from 'fs';
if (existsSync('notes.txt')) {
  console.log('var');
}

Burada existsSync dosyanın varlığını anında kontrol eder. Klasik modülden fs'ten içe aktarılır; Promise döndürmez. Asenkron alternatif olarak fs.promises.access kullanılabilir ama existsSync kısa ve basittir.

existsSync ve yarış koşulu

existsSync dosya varlığını kontrol etse de, dosyanın okunabilir olduğunu garanti etmez; izinler engelleyebilir. Bu yüzden kontrolü yapıp hemen readFile çağırırsan yarış koşulu (race condition) oluşabilir: iki çağrı arasında dosya silinebilir.

if (existsSync('a.txt')) {
  // dosya burada silinmiş olabilir
  const data = await fs.readFile('a.txt', 'utf8');
}

Bu yüzden çoğu durumda existsSync yerine doğrudan readFile çağırıp ENOENT hatasını yakalamak daha güvenlidir. Yine de yapılandırma dosyalarının varlığını kontrol etmek gibi basit durumlarda existsSync pratiktir.

Uygulama Sıra sende: existsSync ile kontrol

import fs from 'fs/promises' ve import { existsSync } from 'fs' ile modülleri içe aktar. Bir async function run() tanımla. İşlev içinde önce await fs.writeFile('check.txt', 'veri') yaz. Sonra if (existsSync('check.txt')) ile kontrol et; console.log('var') yazdır. run() çağır.

Başlangıç kodu

index.js
// fs/promises ve fs modüllerini içe aktar
// async function run tanımla
// writeFile ile dosya oluştur, existsSync ile kontrol et, console.log ile yazdır
// run'u çağır

Örnek çözüm

index.js
import fs from 'fs/promises';
import { existsSync } from 'fs';

async function run() {
  await fs.writeFile('check.txt', 'veri');
  if (existsSync('check.txt')) {
    console.log('var');
  }
}
run();

Beklenen çıktı

var

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 fs.existsSync çağrısı ne döndürür?

  • true ya da false Doğru cevap
  • Bir Promise
  • Dosya içeriği
  • Hata nesnesi

Açıklama: existsSync true/false döndürür.

2 Boşluğu doldur: existsSync

Soru
import { existsSync } from 'fs';
if (____('notes.txt')) {
  console.log('var');
}
Cevap
import { existsSync } from 'fs';
if (existsSync('notes.txt')) {
  console.log('var');
}

Açıklama: existsSync ile varlık kontrolü yaparsın.

3 existsSync kavramları

Kavram Anlamı
existsSync varlığı kontrol eder
senkron anında döner
true dosya var

Başlangıç bölümündeki tüm dersler