Node.js实现批量去除BOM文件头
之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下。
其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的文件即可,直接上代码吧 :)
var fs = require('fs');
var path = "目标路径..";
function readDirectory(dirPath) {
if (fs.existsSync(dirPath)) {
var files = fs.readdirSync(dirPath);
files.forEach(function(file) {
var filePath = dirPath + "/" + file;
var stats = fs.statSync(filePath);
if (stats.isDirectory()) {
console.log('\n读取目录:\n', filePath, "\n");
readDirectory(filePath);
} else if (stats.isFile()) {
var buff = fs.readFileSync(filePath);
if (buff[0].toString(16).toLowerCase() == "ef" && buff[1].toString(16).toLowerCase() == "bb" && buff[2].toString(16).toLowerCase() == "bf") {
//EF BB BF 239 187 191
console.log('\发现BOM文件:', filePath, "\n");
buff = buff.slice(3);
fs.writeFile(filePath, buff.toString(), "utf8");
}
}
});
} else {
console.log('Not Found Path : ', dirPath);
}
}
readDirectory(path);
相关文章
node.js报错:Cannot find module ''ejs''的解决办法
最近发现了node.js居然报错了,错误提示为:Cannot find module 'ejs',后来找了找资料发现解决的方法其实很简单,下面通过这篇文章来一起看看吧,希望对同样遇到这个问题的朋友们能有所帮助。2016-12-12如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
这篇文章主要介绍了如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-05-05
最新评论