Изучение различных методов проверки существования папки в TypeScript

В TypeScript проверка существования папки — обычная задача при работе с файловыми системами или выполнении операций с каталогами. В этой статье блога мы рассмотрим различные методы выполнения этой задачи, попутно предоставляя примеры кода и пояснения. Итак, начнём!

Метод 1: использование fs.existsSync() из модуля fs
Модуль fs в Node.js предоставляет простой способ проверить существование папки. Мы можем использовать функцию existsSync()для синхронной проверки существования заданного пути. Вот пример:

import fs from 'fs';
const folderPath = '/path/to/folder';
if (fs.existsSync(folderPath)) {
  console.log('Folder exists!');
} else {
  console.log('Folder does not exist!');
}

Метод 2: использование fs.access() из модуля fs
Другой подход — использовать функцию access()из модуля fs. Этот метод является асинхронным и позволяет выполнять более детальные проверки, например проверку разрешений на чтение или запись. Вот пример:

import fs from 'fs';
const folderPath = '/path/to/folder';
fs.access(folderPath, fs.constants.F_OK, (err) => {
  if (err) {
    console.log('Folder does not exist!');
  } else {
    console.log('Folder exists!');
  }
});

Метод 3: использование fs.promises.access() из модуля fs/promises
Если вы предпочитаете работать с обещаниями вместо обратных вызовов, вы можете использовать функцию access()из модуля fs/ модуль обещаний. Этот метод возвращает обещание, позволяющее использовать синтаксис async/await. Вот пример:

import { promises as fsPromises } from 'fs';
const folderPath = '/path/to/folder';
async function checkFolderExists() {
  try {
    await fsPromises.access(folderPath);
    console.log('Folder exists!');
  } catch (err) {
    console.log('Folder does not exist!');
  }
}
checkFolderExists();

Метод 4: использование fs.readdir() из модуля fs.
Если вам нужно проверить, существует ли папка, а также получить ее содержимое, вы можете использовать функцию readdir()из fs. модуль. Если папка не существует, будет выдана ошибка. Вот пример:

import fs from 'fs';
const folderPath = '/path/to/folder';
fs.readdir(folderPath, (err, files) => {
  if (err) {
    console.log('Folder does not exist!');
  } else {
    console.log('Folder exists!');
    console.log('Files:', files);
  }
});

Резюме:
В этой статье мы рассмотрели различные методы проверки существования папки в TypeScript. Мы рассмотрели четыре подхода: использование existsSync()из модуля fs, использование access()из модуля fs, использование access()из модуля fs/promises и используя readdir()из модуля fs. У каждого метода есть свои преимущества и варианты использования, поэтому выберите тот, который лучше всего соответствует вашим требованиям.