Skip to content

Instantly share code, notes, and snippets.

@bhaltair
Created August 25, 2017 05:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bhaltair/7683903f3910c8e8ff35043ef809b5b7 to your computer and use it in GitHub Desktop.
Save bhaltair/7683903f3910c8e8ff35043ef809b5b7 to your computer and use it in GitHub Desktop.
node read file
var fs = require('fs')
// fs.readdir(__dirname, function (err, files) {
// // body...
// console.log(files)
// })
console.log('now path is: ' + process.cwd())
fs.readdir(process.cwd(), function (err, files) {
// body...
console.log('')
if(!files.length){
return console.log(' \033[31m No files to show!\033[39m\n');
}
console.log(' \033[31m select file or dir you want to see!\033[39m\n');
var stats = []
function file(i) {
// body...
var filename = files[i]
//获取文件信息
fs.stat(__dirname + '/' + filename , function(err, stat) {
stats[i] = stat
// body...
if(stat.isDirectory()){
console.log(' ' + i + ' \033[31m ' + filename + '\033[39m\n')
}else {
console.log(' ' + i + ' \033[90m ' + filename + '\033[39m\n')
}
i++;
if(i == files.length){
read()
}else {
file(i)
}
});
}
function read() {
// body...
console.log('')
process.stdout.write('\033[33m Enter your choice: \033[39m ')
process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', option)
}
function option(data) {
// body...
//当前序号是不是文件夹
var filename = files[Number(data)]
if(stats[Number(data)].isDirectory()){
// process.stdout.write('\033[31m Enter your choice: \033[39m ')
fs.readdir(__dirname + '/' + filename, function(err, files){
console.log('')
console.log( ' ( ' + files.length + ' files)')
files.forEach(function(file){
console.log('-----' + file)
})
console.log('')
process.exit(1)
})
}else {
process.stdin.pause()
fs.readFile(__dirname + '/' + filename, 'utf8', function (err, data){
console.log('')
console.log('\033[90m '+ data.replace(/(.*)/g, ' $1') +'\033[39m')
})
}
}
file(0)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment