powershell中往上一层:cd ../,执行相对路径,出现了读取失败的情况
相对路径修改为绝对路径:'F:\前端\Node.js基础\files\1.txt'
绝对路径
绝对路径容易出错,最好采用路径拼接,__dirname代表当前文件所处的目录
JS
const fs = require('fs')
// 出现路径拼接错误的问题,是因为出现了./或者../开头的相对路径
// './1.text':相对路径
fs.readFile('./1.txt','utf8',function(err,dataStr){
if(err){
return console.log('读取失败!' + err);
} console.log('读取成功' + dataStr);
// __dirname 代表当前(路径拼接.js)文件所处的目录
console.log(__dirname);
})
// 如果要解决这个问题,可以直接提供一个完整的存放路径;
// 绝对路径:'F:\\前端\\Node.js基础\\files\\1.txt'
fs.readFile('F:\\前端\\Node.js基础\\files\\1.txt','utf8',function(err,dataStr){
if(err){
return console.log('读取失败!' + err);
} console.log('读取成功' + dataStr);
})
// 路径拼接
// 绝对路径的移植性非常差,容易写错不易于维护;
// __dirname 代表当前(路径拼接.js)文件所处的目录
fs.readFile(__dirname + '/1.txt','utf8',function(err,dataStr){
if(err){
return console.log('读取失败!' + err);
}
console.log('读取成功' + dataStr);
console.log(__dirname);
})
path.basename():获取路径的文件名
path.extname():获取路径的文件名的后缀名
JS
const fs = require('fs');
const path = require('path');
// 定义文件的存放路径
const fpath = 'F:/前端/Node.js基础/files/1.txt';
const fullName = path.basename(fpath);
console.log(fullName);//1.txt
// 只拿到文件名称,不要后缀名
const nameWithoutExt = path.basename(fpath,'.txt')
console.log(nameWithoutExt);//1
// 只要后缀名,扩展名,不要文件名称
const fext = path.extname(fpath)
console.log(fext);//.txt
网友评论