路径动态拼接 path模块的方法

2021-11-12  本文已影响0人  圆滚滚大煤球
路径动态拼接的问题

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
上一篇下一篇

猜你喜欢

热点阅读