Как удалить все изображения каталога

#javascript #node.js #fs

#javascript #node.js #fs

Вопрос:

Я пытаюсь удалить все изображения каталога. Но появляется ошибка в пути к каталогу. А также не знаю, как получить путь ко всем изображениям и удалить их все.

Моя структура каталогов :

 server
  -> app.js
tmp
  -upload
  -- pic.jpg
  -- pic2.jpg
  -- pic3.jpg
 

Я пробовал это :

 var dir = require('../tmp/upload');
var fs = require('fs');
var promise = require('bluebird');
fs.readdir(dir).then(function(file) {
    console.log(data)

}).catch(function(err){
    console.log
})
 

Но появляется ошибка: не удается найти модуль ‘../tmp /upload’

Нужна помощь, чтобы получить путь и все изображения в папке загрузки и удалить их.

Заранее спасибо

Комментарии:

1. Если app.js находится на том же уровне, что и tmp, тогда вместо этого используйте ./tmp/upload . .. попытается выйти за пределы папки, в которой выполняется текущий код.

2. app.js находится в папке сервера. папка загрузки находится в папке tmp. Итак, каким будет путь??? сервер -> app.js tmp -загрузить — pic.jpg

3. Итак app.js и tmp находятся в той же папке, которая называется server?

4. Нет app.js находится в папке сервера tmp находится непосредственно за пределами сервера

Ответ №1:

Вы получили эту ошибку просто потому, что вам действительно потребовался модуль из относительного пути вместо его разрешения. Чтобы преобразовать относительный путь в абсолютный путь, вам нужно использовать path.resolve , а не require .

 var path = require('path');
var dir = path.resolve('../tmp/upload');
 

Ответ №2:

 const fsPromises = require('fs').promises 
// For ES syntax: import { promises as fsPromises } from 'fs'

const directory = 'your/directory/path/here'

await fsPromises.rmdir(directory, {
  recursive: true
})