Hola, estoy tratando de encontrar el primer archivo con el nombre de archivo dado (pieza de nombre de archivo).
Funciona bien pero tarda un poco en dar resultado
hay codigo
const fs = require("fs"); const dirCheckIn = "\\\\192.168.2.4\\Photos"; exports.checkUploadedFiles = (req, res) => { let fileName = req.params.filename; const getAllFiles = function (dirPath, arrayOfFiles) { files = fs.readdirSync(dirPath); arrayOfFiles = arrayOfFiles || []; files.forEach(function (file) { if (fs.statSync(dirPath + "/" + file).isDirectory()) { arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles); } else { arrayOfFiles.push(file); } }); return arrayOfFiles; }; const uploadedFiles = getAllFiles(inventDirCheckIn); console.log(uploadedFiles) let result = uploadedFiles.find( (result) => result.startsWith(fileName)); if (!result) { res.send('nothing found') } else if (result) { res.send(result) } }Funciona bien pero, por ejemplo, si tengo más de 7000 fotos, se tarda unos 5 segundos en obtener el resultado. Tal vez hay una solución más inteligente?
¿Cómo puedo hacerlo de mejor manera? Quiero verificar si el archivo se carga en dir Photos. Obtuve una ruta api simple /api/getUploadedFiles/:filename
También quiero usar startsWith porque a veces no sé el nombre completo del archivo.
/** * * @param filePath path to file which is to be checked if it exists. */ private checkFileExistsSync(filePath: string) { let flag = true; try { fs.accessSync(filePath, fs.constants.F_OK); } catch (e) { flag = false; } return flag; } // Example usage // path to the file const dirCheckIn = "\\\\192.168.2.4\\Photos"; if (checkFileExistsSync(dirCheckIn)) { // if the file exists do something... } if (!checkFileExistsSync(dirCheckIn)) { // if the file doesn't exists do something... }