Переименование файлов с помощью node.js
Я новичок в использовании JS, поэтому я постараюсь быть настолько конкретным, насколько могу:)
-
У меня есть папка с 260 файлами .png с разными названиями стран: Afghanistan.png
, Albania.png
, Algeria.png
и т.д.
-
У меня есть файл .json с фрагментом кода со всеми ISO-кодами для каждой страны:
{
"AF" : "Afghanistan",
"AL" : "Albania",
"DZ" : "Algeria",
...
}
- Я хотел бы переименовать файлы .png со своим именем ISO в младшем. Это означает, что я хотел бы иметь следующий ввод в моей папке со всеми изображениями
.png
:
af.png
, al.png
, dz.png
и т.д.
Я пытался самостоятельно исследовать, как это сделать с помощью node.js, но я немного потерялся здесь, и я был бы признателен за некоторые подсказки.
Спасибо заранее!
Ответы
Ответ 1
Для этого вам нужно использовать fs
: http://nodejs.org/api/fs.html
И, в частности, fs.rename()
:
var fs = require('fs');
fs.rename('/path/to/Afghanistan.png', '/path/to/AF.png', function(err) {
if ( err ) console.log('ERROR: ' + err);
});
Поместите это в цикл над вашими недавно прочитанными ключами и значениями объекта JSON, и вы получите скрипт пакетного переименования.
fs.readFile('/path/to/countries.json', function(error, data) {
if (error) {
console.log(error);
return;
}
var obj = JSON.parse(data);
for(var p in obj) {
fs.rename('/path/to/' + obj[p] + '.png', '/path/to/' + p + '.png', function(err) {
if ( err ) console.log('ERROR: ' + err);
});
}
});
(Здесь предполагается, что ваш файл .json
заслуживает доверия и что его ключи и значения можно безопасно использовать непосредственно в именах файлов. Если это не так, обязательно избегайте их правильно!)
Ответ 2
- fs.readdir(путь, обратный вызов)
- fs.rename(старый, новый, обратный вызов)
Пройдите http://nodejs.org/api/fs.html
Одна важная вещь - вы также можете использовать функции синхронизации. (Он будет работать как программа C)
Ответ 3
Для операционной системы Linux/Unix вы можете использовать синтаксис оболочки
const shell = require('child_process').execSync ;
const currentPath= `/path/to/name.png`;
const newPath= `/path/to/another_name.png`;
shell(`mv ${currentPath} ${newPath}`);
Что это!
Ответ 4
Вопрос......
У меня есть файлы в папке с именами сотрудников. Я хотел бы создать сценарий Java в Adobe Pro, где сценарий добавляет файл name_ к текущему имени файла. Например, в настоящее время файлы сохраняются как 1234, но я бы хотел, чтобы java-скрипт переименовал файл в Resume_1234.
Может кто-нибудь помочь?
Ответ 5
Для синхронного переименования используйте fs.renameSync