Esto es una actualización al 31-10-2020, dialog.showOpenDialog retorna result, que contiene en propiedades si el usuario cancelo la operación y en la propiedad “filePaths” viene el arreglo de imagenes.
// Función de abrir directorio
ipcMain.on('open-directory-event', (evt, args) => {
console.log('arguments' + args);
// Abre dialog
dialog
.showOpenDialog(ventana, {
title: 'Seleccione la nueva ubicación',
buttonLabel: 'Abrir ubicación',
properties: ['openDirectory'],
})
.then(result => {
// Verifica si usuario cancelo la operación
if (result.canceled) {
return;
}
// Obtiene la ruta de la carpeta seleccionada
const filesPath = result.filePaths[0];
// Solo muestra el primer directorio
fs.readdir(filesPath, (error, files) => {
// Declara arreglo vacio de imagenes
let images = [];
// Verifica el error
if (error) {
console.log(error);
return;
}
// Recorre archivos uno a uno
for (let i = 0; i < files.length; i++) {
// Verifica si es una imagen
if (isImage(files[i])) {
// Obtiene información de imagen
let imageFile = path.join(filesPath, files[i]);
let imageStats = fs.statSync(imageFile);
let imageSize = filesize(imageStats.size, { round: 0 });
// Agrega información de imagen al arreglo
images.push({ fileName: files[i], src: `file://${imageFile}`, size: imageSize });
}
}
// Muestra imagenes
console.log(images);
});
})
.catch(err => {
console.log(err);
});
});
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.