Работа с папками в Node

Как взаимодействовать с папками с помощью Node

Node.jsfsОсновной модуль предоставляет множество удобных методов, которые вы можете использовать для работы с папками.

Проверьте, существует ли папка

Использоватьfs.access()чтобы проверить, существует ли папка и имеет ли узел доступ к ней со своими разрешениями.

Создать новую папку

Использоватьfs.mkdir()или жеfs.mkdirSync()чтобы создать новую папку.

const fs = require('fs')

const folderName = ‘/Users/flavio/test’

try { if (!fs.existsSync(dir)){ fs.mkdirSync(dir) } } catch (err) { console.error(err) }

Прочитать содержимое каталога

Использоватьfs.readdir()или жеfs.readdirSyncдля чтения содержимого каталога.

Этот фрагмент кода считывает содержимое папки, как файлов, так и подпапок, и возвращает их относительный путь:

const fs = require('fs')
const path = require('path')

const folderPath = ‘/Users/flavio’

fs.readdirSync(folderPath)

Вы можете получить полный путь:

fs.readdirSync(folderPath).map(fileName => {
  return path.join(folderPath, fileName)
}

Вы также можете отфильтровать результаты, чтобы вернуть только файлы и исключить папки:

const isFile = fileName => {
  return fs.lstatSync(fileName).isFile()
}

fs.readdirSync(folderPath).map(fileName => { return path.join(folderPath, fileName) }).filter(isFile)

Переименовать папку

Использоватьfs.rename()или жеfs.renameSync()переименовать папку. Первый параметр - это текущий путь, второй - новый путь:

const fs = require('fs')

fs.rename(’/Users/flavio’, ‘/Users/roger’, err => { if (err) { console.error(err) return } //done })

fs.renameSync()это синхронная версия:

const fs = require('fs')

try { fs.renameSync(’/Users/flavio’, ‘/Users/roger’) } catch (err) { console.error(err) }

Удалить папку

Использоватьfs.rmdir()или жеfs.rmdirSync()удалить папку.

Удаление папки с содержимым может быть более сложным, чем вам нужно.

В этом случае я рекомендую установитьfs-extraмодуль, который очень популярен и поддерживается в хорошем состоянии, и является незаменимой заменойfsмодуль, предоставляя дополнительные функции поверх него.

В этом случаеremove()метод - это то, что вы хотите.

Установите его, используя

npm install fs-extra

и используйте это так:

const fs = require('fs-extra')

const folder = ‘/Users/flavio’

fs.remove(folder, err => { console.error(err) })

Его также можно использовать с обещаниями:

fs.remove(folder).then(() => {
  //done
}).catch(err => {
  console.error(err)
})

или с помощью async / await:

async function removeFolder(folder) {
  try {
    await fs.remove(folder)
    //done
  } catch (err) {
    console.error(err)
  }
}

const folder = ‘/Users/flavio’ removeFolder(folder)

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: