Controleren of een directory bestaat

TypeScript:
Controleren of een directory bestaat

Hoe te:

In TypeScript gebruik je meestal Node.js’s fs module om te controleren op een directory. Hier is de snelle manier om het te doen:

import { existsSync } from 'fs';

// Controleren of een directory bestaat
const directoryPath = './path/to/directory';

if (existsSync(directoryPath)) {
  console.log(`Yep, hij is er!`);
} else {
  console.log(`Nee, bestaat niet.`);
}

Output is afhankelijk van het bestaan van de directory:

Yep, hij is er!
// of
Nee, bestaat niet.

Diepere Duik

Historisch gezien gebruikten mensen de asynchrone fs.exists, maar deze werd afgekeurd omdat het een vervelende gewoonte had om programmeerfouten te veroorzaken, zoals check-then-act racecondities. existsSync is eenvoudiger en schakelt de callback rommel uit.

Wat alternatieven betreft, de fs.statSync of fs.accessSync methoden kunnen ook het werk doen, maar vereisen wat meer code:

import { statSync } from 'fs';

try {
  const stats = statSync(directoryPath);
  if (stats.isDirectory()) {
    console.log('Hij bestaat inderdaad.');
  }
} catch (error) {
  if (error.code === 'ENOENT') {
    console.log('Nee, nergens te vinden.');
  }
}

Zowel statSync als accessSync geven fouten als het pad niet bestaat, dus je moet dat afhandelen.

Wanneer je TypeScript gebruikt, herinner je dan dat deze methoden van Node.js komen, niet van TypeScript zelf. En de rol van TypeScript? Voornamelijk, het biedt de types en zorgt ervoor dat je de methoden correct gebruikt.

Zie Ook