显示文件夹下内容,并根据输入显示文件内容,如果是文件夹就显示文件夹下文件数量 以及文件名。
var fs = require('fs');
var stdout = process.stdout;
var stdin = process.stdin;
var stats = [];
fs.readdir(process.cwd(), function (err, files) {
console.log('');
if (!files.length) {
return console.log('没有文件可以显示');
}
console.log('请选择你想查看的文件或目录');
function file(i) {
var filename = files[i];
fs.stat(__dirname + '/' + filename, function (err, stat) {
stats[i] = stat;
if (stat.isDirectory()) {
console.log('文件夹:' + i + '.' + filename);
} else {
console.log('文件名:' + i + '.' + filename);
}
if (++i == files.length) {
read();
} else {
file(i);
}
});
}
function read(){
console.log('');
stdout.write('请输入你的选择:');
stdin.resume();
stdin.setEncoding('utf8');
stdin.on('data',option);
}
//处理用户请求的方法
function option(data){
var filename = files[Number(data)];
if(!filename){
stdout.write('请输入你的选择:');
}else{
stdin.pause();
if(stats[Number(data)].isDirectory()){
fs.readdir(__dirname+'/'+filename,function(err,files){
console.log('');
console.log(files.length+" files");
files.forEach(function(file){
console.log(' - '+file);
});
console.log('');
});
}else{
fs.readFile(__dirname+'/'+filename,'utf8',function (err,data) {
console.log('');
console.log(data.replace(/(.*)/g,' $1'));
});
}
}
}
file(0);
});
网友评论