Estoy tratando de crear un directorio con subcarpetas en mi aplicación. La nueva solicitud creará carpetas solo si la carpeta principal ya está allí, pero no creará si la carpeta raíz no está allí.
import { mkdir } from 'fs'; mkdir(join(__dirname, '../folder_to_create_directory/', req.body.path), (err) => { if (err) { return "error"; } return "success" });
El req.body.path es una cadena de ruta, por ejemplo: prueba/carpeta/subcarpeta. El código funcionará solo si creamos la carpeta "prueba" manualmente (no devuelve el mensaje de "éxito" también aunque se esté creando el directorio). SI la carpeta de prueba no está allí, entonces el directorio no se está creando.
Rendimiento esperado:-
carpeta_para_crear_directorio/prueba/carpeta/subcarpeta
Puede usar la biblioteca fs
para trabajar con un sistema de archivos.
Para directorios anidados:
var fs = require('fs'); var dir = join(__dirname, '../folder_to_create_directory/', req.body.path); if (!fs.existsSync(dir)){ fs.mkdirSync(dir, { recursive: true }); }
O, para directorios individuales:
var fs = require('fs'); var dir = join(__dirname, '../folder_to_create_directory/', req.body.path); if (!fs.existsSync(dir)){ fs.mkdirSync(dir); }
te falta una opción "{recursive: true}". Prueba este ejemplo:
const { mkdir } = require("fs"); const {join} = require('path') const path = join(__dirname, "../folder_to_create_directory", 'test/folder/subfolder') mkdir(path, { recursive: true }, (err) => { if (err) { return "error"; } return "success"; });