tengo
fileUploadPath="d:/downloads";y
entry.name='155ce0e4-d763-4153-909a-407dc4e328d0/63690689-e183-46ae-abbe-bb4ba5507f1a_MULTI_0_3/output/res2/res2.fcs';cuando intento crear el archivo res2.fcs con la siguiente ruta anterior, me da un error, ¿por qué no está creando la estructura de carpetas?
código:
data.entries.forEach(entry => { console.log(entry.name); if (fs.existsSync(fileUploadPath)) { var sourceFilePath = fileUploadPath + '/' + entry.name; if (!fs.existsSync(sourceFilePath)) { fs.mkdir(sourceFilePath, {recursive: true }, (err) => {if (err) { console.log("Failed :" + err); } else { const fstream = fs.createWriteStream(require('path').format({dir: fileUploadPath, base: entry.name })); fstream.write('fileContent'); fstream.end(); fstream.on("finish", f => { console.log(f) }); fstream.on("error", e => { console.log(e) }); } }); } else { console.log('d'); } } else { console.log('ssss') } })error:
[Error: ENOENT: no such file or directory, open 'D:\downloads\626a69d18d2468c5082fc6e1\MULTI_1_2022-04-28_11-00-38\output\res1\res1.fcs'] { errno: -4058, code: 'ENOENT', syscall: 'open', path: 'D:\\downloads\\626a69d18d2468c5082fc6e1\\MULTI__2022-04-28_11-00-38\\output\\res1\\res1.fcs'está pasando la ruta del archivo a .mkdir en lugar de la carpeta, por lo que primero debe crear una carpeta y luego escribir el archivo
(como está creando una carpeta que tiene el mismo nombre que el archivo, debería tener un error EISDIR , en lugar de este, que también dice que la escritura del archivo no funcionó)
use path.dirname para extraer la carpeta y pasarla a .mkdir :
// require path module at the top of the script const path = require('path'); fs.mkdir(path.dirname(sourceFilePath), { recursive: true }, (err) => { //...