В Node.js модуль fs core предоставляет множество удобных методов, которые вы можете использовать для работы с папками.
Проверьте, существует ли папка
Используйте 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.переименовать() или fs.renameSync() для переименования папки. Первый параметр – это текущий путь, второй – новый путь:
const fs = require('fs')
fs.rename('/Users/flavio', '/Users/roger', err => {
if (err) {
console.error(err)
return
}
//done
})Первый параметр - это текущий путь, второй - новый путь: () является синхронной версией:
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 устанавливает fs-дополнительный
и использовать его вот так:
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 function removeFolder(folder) {
try {
await fs.remove(folder)
//done
} catch (err) {
console.error(err)
}
}
const folder = '/Users/flavio'
removeFolder(folder)Оригинал: “https://flaviocopes.com/node-folders/”