```
// let path = require('path');
//一個'\'是打印不出來的,它是轉義符,有特殊意義
// console.log('\'); //報錯
/**
* normalize
* 對路徑進行容錯處理
* 主要是 路徑分隔符多不多,有沒有..有的話自動轉化
*/
const {normalize} = require('path');
console.log(normalize('/usr//local/bin')); // /usr/local/bin
console.log(normalize('usr//local/../bin')); // /usr/bin
/**
* join
* 在拼接路徑之前hi調用normalize
*/
const {join} = require('path');
console.log(join('usr/','local','bin')); // usr/local/bin
/**
* 將相對路徑解析成絕對路徑
*/
const {resolve} = require('path');
console.log(resolve('./'))
/**
* basename,dirname,extname
*/
const {basename,dirname,extname} = require('path');
const filePath = '/usr/local/bin/no.txt';
console.log(basename(filePath)); //no.txt
console.log(dirname(filePath)); //文件夾 /usr/local/bin
console.log(extname(filePath)); //后綴
/**
* parse 和 format 作用是相反的
* return pathObject
*/
const {parse,format} = require('path');
const ret = parse(filePath);
console.log(ret);
// { root: '/',
// dir: '/usr/local/bin',
// base: 'no.txt',
// ext: '.txt',
// name: 'no' }
console.log(format(ret)); // /usr/local/bin/no.txt
//format若存在沖突dir和base的優先級較高
/**
*
*/
const {
sep,
delimiter,
win32,
posix
} = require('path');
console.log('sep:',sep); //當前系統的路徑分隔符
console.log('win sep',win32.sep); //查看window下的路徑分隔符
console.log('posix sep',posix.sep);
console.log('PATH',process.env.PATH); //系統環境變量
console.log('delimiter:',delimiter); // : 系統環境變量的分隔符
```
```
let path = require('path');
// const mod = require('./0');
// console.log(mod.testVar);
console.log('__dirname',__dirname); //D:\WEB\zfplan\studydaydayup\node\node-base\path
console.log('process.cwd()',process.cwd()); //D:\WEB\zfplan\studydaydayup\node\node-base\path
console.log('./',path.resolve('./')); //D:\WEB\zfplan\studydaydayup\node\node-base\path
/**
* 若用命令行打印 此時若在命令行中退后一層 再打印
* cwd,resolve 為命令行所處位置,而__dirname和__filename永遠是絕對路徑
*/
/** 對于 : 【./】
* require方法無論怎么調都是文件的絕對路徑
* 其它地方和process.cwd一樣,是指node啟動的路徑位置
*/
```
## process.chdir可以更改當前控制臺位置

