使用node.js重命名文件
Renaming files using node.js
我有一个包含260个不同国家名称的.png文件的文件夹:Afghanistan.png
, Albania.png
, Algeria.png
等
我有一个.json文件,其中包含每个国家/地区的所有ISO代码,如下所示:
{
"AF" : "Afghanistan",
"AL" : "Albania",
"DZ" : "Algeria",
...
}
我想用小写的ISO名称重命名。png文件。这意味着我想在我的文件夹中输入以下所有.png
图像:af.png
, al.png
, dz.png
等
我试图自己研究如何用node.js做到这一点,但我在这里有点迷路,我会很感激一些线索。
您需要使用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
文件是可信的,并且在文件名中直接使用它的键和值是安全的。如果不是这种情况,请确保正确转义!)
同步重命名使用fs.renameSync
fs.renameSync('/path/to/Afghanistan.png', '/path/to/AF.png');
- fs。readdir(路径,回调)
- fs.rename(旧的,新的,回调)
通读http://nodejs.org/api/fs.html
对于linux/unix操作系统,可以使用shell语法
const shell = require('child_process').execSync ;
const currentPath= `/path/to/name.png`;
const newPath= `/path/to/another_name.png`;
shell(`mv ${currentPath} ${newPath}`);
就是这样!
这是重命名任意目录下的文件的脚本的更新版本;即=比;"C: ' '用户用户' Downloads"
const fs = require('fs');
// current file name
const fileName = 'C:''Users''user''Downloads''oldFileName.jpg';
// new file name
const newFileName = 'C:''Users''user''Downloads''newFileName.jpg';
fs.rename(fileName, newFileName, function(err) {
if (err) throw err;
console.log('File Renamed!');
});
此脚本使用特定的路径和文件名重命名文件,在本例中为"C:'Users'user'Downloads'oldFileName.jpg" C: ' '用户下载' '用户newFileName.jpg "使用"fs"模块。"rename"函数接受当前文件名、新文件名和一个回调函数,该回调函数将在文件重命名后调用。如果有错误,它将抛出一个错误。否则,它将打印"文件重命名!"到控制台
- 正在使用Dropzone.js删除服务器上已重命名的文件
- 如何使用laravel重命名已存储在服务器中的文件
- gulp重命名多个文件
- 使用 gruntjs 自定义初始化任务重命名模板文件夹
- 重命名上传的文件Ruby On Rails
- 导出时如何重命名excel文件
- 重命名Alfresco脚本中的文件
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- 使用AjaxForm Jquery重命名文件
- 批量文件重命名
- 在S3中上传之前重命名文件
- 在multer中重命名上载的文件
- 仅对文件进行 Gulp 重命名,而不重命名目录
- 有没有办法让我的.js文件自毁,或重命名自己,或者在一次使用后将自己移动到新位置
- 重命名上传的文件,以便可以将其删除 DropZone.js
- Phonegap使用moveTo重命名文件
- 将html文件重命名为php时编码错误
- 将块大小的文件重命名为Blob
- ruby on rails-将我的文件重命名为.js.erb可以在javascript中编写erb,但不能在erb中编写
- 使用AngularJS和ng文件上传在文件重命名时保持原始格式