标签:
使用nodejs获取文件夹内文件的编码方式:使用jschardet模块。
下面的代码还有问题,没有添加结束的语句,没有判断应该在哪执行res.send()。
res.send()不能放在forEach后面,因为还会调用explorer,会二次输出send,出错。
var fs = require(‘fs‘);
var jschardet = require(‘jschardet‘);
util = require(‘util‘);
path = "D:/node/temp/public";
var data = [];
function explorer(path){
fs.readdir(path, function(err, files){
//err 为错误 , files 文件名列表包含文件夹与文件
if(err){
console.log(‘error:\n‘ + err);
return;
}
var a = 0;
files.forEach(function(file){
fs.stat(path + ‘/‘ + file, function(err, stat){
if(err){console.log(err); return;}
if(stat.isDirectory()){
// 如果是文件夹遍历
explorer(path + ‘/‘ + file);
}else{
// 读出所有的文件
var str = fs.readFileSync(path + ‘/‘ + file);
var result = jschardet.detect(str);
var item = {};
item.filename = path + ‘/‘ + file;
item.encoding = result.encoding;
item.confidence = result.confidence;
item.source = path;
console.log(‘编码方式:‘+result.encoding+"; "+result.confidence);
console.log(‘文件名:‘ + path + ‘/‘ + file);
data.push(item);
}
});
});
});
}
explorer(path);
标签:
原文地址:http://www.cnblogs.com/wang-jing/p/4739345.html