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
.png
imá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) {...}
require
ejecuta 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.html
Una 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
?