var fs=require('fs')
//同步还是异步 异步
// require('fs').readdir('.',async)
// function async (err,files)
// {
// console.log(files)
// }
// fs.readdir(__dirname,function(err,files){ //readdir 获取文件列表
// console.log(files)
// })
//流
// process.stdout.write('hello world!!!') 输出hello world!!!
// process.stdin.pipe(process.stdout); 输入一个值,然后输出输入的值
// process.cwd() 返回 Node.js 进程的当前工作目录。
// fs.stat 通过检查文件系统来测试给定的路径是否存在
//------------------------------------------------------------------------------------------------------------------------------
fs.readdir(process.cwd(),function(err,files){ //fs.readdir获取文件列表 process.cwd()返回当前进程的工作目录
console.log(' ')
if(!files.length){
return console.log(' \033[31m No files to show!\033[39m\n')
}
console.log(' Select which file or directory you want to see\n')
function file(i){
var filename=files[i]
fs.stat(__dirname+'/'+filename,function(err,stat){ //检查文件系统测试给定的路径是否存在
if(stat.isDirectory()){
console.log(' '+i+' \033[36m'+filename+'/\033[39m')
}else{
console.log(' '+i+' \033[36m'+filename+'\033[39m')
}
i++
if(i==files.length){
console.log(' ')
process.stdout.write(' \033[33mEnter your choice: \033[39m')
process.stdin.resume() //在“旧”流模式下,stdin流默认是暂停的,所以必须调用process.stdin.resume()来读取它。
}else{
file(i)
}
})
}
file(0)
// function read(){
process.stdin.on('data',option) //监听data事件
// }
function option(data){ //读取
var filename=files[Number(data)]
if(!filename){
process.stdout.write(' \033[31meEnter your choice: \033[39m')
}else{
process.stdin.pause()
fs.readFile(__dirname+'/'+filename,'utf8',function(err,data){
console.log(' ')
// console.log('\033[90m'+data.replace(/(.*)/g,' $1')+'\033[39m') 添加正则表达式添加辅助缩进
console.log(data)
})
}
}
})