node學習六:路徑操作
阿新 • • 發佈:2018-11-27
首先需要匯入path模組:
const path = require('path');
path.basename(path[,.ext]):
// 獲取路徑的最後一部分
console.log(path.basename('/foo/bar/baz/asdf/quux.html'));
console.log(path.basename('/foo/bar/baz/asdf/quux.html', '.html'));
path.dirname(path):
// 獲取路徑 console.log(__dirname); console.log(path.dirname(__dirname)); console.log(path.dirname('/abc/qqq/www/abc'));
path.extname(path):
// 獲取副檔名稱
console.log(path.extname('index.html'));
path.parse(path):
let obj = path.parse(__filename);
console.log(obj);
/*
{ root: 'E:\\', 檔案的跟路徑
dir: 'E:\\node\\day02\\02-code',檔案的全路徑
base: '02.js',檔案的名稱
ext: '.js',副檔名
name: '02' 檔名稱
}
*/
path.format(pathObj):
let objpath = {
root : 'd:\\',
dir : 'd:\\qqq\\www',
base : 'abc.txt',
ext : '.txt',
name : 'abc'
};
let strpath = path.format(objpath);
console.log(strpath);
path.isAbsolute(path):
// 判斷是否為絕對路徑 console.log(path.isAbsolute('/foo/bar')); console.log(path.isAbsolute('C:/foo/..'));
path.join([...paths]):
// 拼接路徑(..表示上層路徑;.表示當前路徑),在連線路徑的時候會格式化路徑
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '../../'));
path.normalize(path):
// 規範化路徑
console.log(path.normalize('/foo/bar//baz/asdf/quux/..'));
console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\'));
path.relative(from, to):
// 計算相對路徑
console.log(path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'));
console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'));
path.resolve([...paths]):(對於相對路徑與絕對路徑的處理有區別)
指定的路徑序列是從右往左開始處理的,後面的 path
被依次處理,直到構造完絕對路徑。 例如,指定的路徑片段序列為:/foo
、/bar
、baz
,則呼叫 path.resolve('/foo', '/bar', 'baz')
會返回 /bar/baz
。
如果處理完所有 path
片段後還未生成絕對路徑,則使用當前工作目錄。
生成的路徑是規範化後的,且末尾的斜槓會被刪除,除非路徑是根目錄。
長度為零的 path
片段會被忽略。
如果沒有傳入 path
片段,則返回當前工作目錄的絕對路徑。
// 解析路徑
console.log(path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'));
path.delimiter:
console.log(path.delimiter);//環境變數分隔符(windows中使用; linux中使用:)
path.sep:
console.log(path.sep);//表示路徑分隔符(windows是\ Linux是/)