Soy bastante nuevo en el uso de JS, así que intentaré ser lo más específico que pueda :)
Tengo una carpeta con 260 archivos .png con diferentes nombres de países:
Afghanistan.png,Albania.png,Algeria.png, etc.Tengo un archivo .json con un fragmento de código con todos los códigos ISO para cada país como este:
{
"AF": "Afganistán",
"AL": "Albania",
"DZ": "Argelia",
...
}
- Me gustaría cambiar el nombre de los archivos .png con su nombre ISO en minúsculas. Eso significa que me gustaría tener la siguiente entrada en mi carpeta con todas las
.pngimágenes:af.png,al.png,dz.png, etc.
Estaba tratando de investigar por mí mismo cómo hacer esto con node.js, pero estoy un poco perdido aquí y agradecería mucho algunas pistas.
¡Gracias por adelantado!
fuente

const obj = require('/path/to/countries.json');y luego:for(var p in obj) {...}requireejecuta código en ese archivo. Estás introduciendo una forma para que alguien potencialmente inyecte código malicioso en la aplicación (es decir, modificando el archivo .json). Leer y usarJSON.parse()evita eso por completo. No comprometa la seguridad por escribir un poco menos de código.fs.renameSync(oldPath, newPath);Atravesar
http://nodejs.org/api/fs.htmlUna cosa importante: también puede utilizar las funciones de sincronización. (Funcionará como el programa C)
fuente
Para el cambio de nombre sincrónico, use fs.renameSync
fs.renameSync('/path/to/Afghanistan.png', '/path/to/AF.png');fuente
Para el sistema operativo Linux / Unix, puede usar la sintaxis de shell
const shell = require('child_process').execSync ; const currentPath= `/path/to/name.png`; const newPath= `/path/to/another_name.png`; shell(`mv ${currentPath} ${newPath}`);¡Eso es!
fuente
fs.rename?