系統中的每個檔案都有一個路徑。在 Linux 和 macOS 上,路徑可能看起來像這樣:/users/joe/file.txt,而 Windows 電腦則不同,其結構可能是:C:\users\joe\file.txt
/users/joe/file.txt
C:\users\joe\file.txt
在應用程式中使用路徑時,您需要注意這個差異。
您可以使用const path = require('node:path');將此模組包含在您的檔案中,並且可以開始使用其方法。
const path = require('node:path');
給定一個路徑,您可以使用這些方法從中提取資訊
dirname
basename
extname
const path = require('node:path'); const notes = '/users/joe/notes.txt'; path.dirname(notes); // /users/joe path.basename(notes); // notes.txt path.extname(notes); // .txt
您可以通過為basename指定第二個參數來獲取不帶擴展名的文件名
path.basename(notes, path.extname(notes)); // notes
您可以使用path.join()來連接路徑的兩個或多個部分
path.join()
const name = 'joe'; path.join('/', 'users', name, 'notes.txt'); // '/users/joe/notes.txt'
您可以使用path.resolve()來計算相對路徑的絕對路徑
path.resolve()
path.resolve('joe.txt'); // '/Users/joe/joe.txt' if run from my home folder
在這種情況下,Node.js 將簡單地將/joe.txt附加到當前工作目錄。如果指定了第二個參數文件夾,resolve將使用第一個作為第二個的基礎
/joe.txt
resolve
path.resolve('tmp', 'joe.txt'); // '/Users/joe/tmp/joe.txt' if run from my home folder
如果第一個參數以斜杠開頭,則表示它是絕對路徑
path.resolve('/etc', 'joe.txt'); // '/etc/joe.txt'
path.normalize()是另一個有用的函數,它將嘗試計算實際路徑,當它包含相對特定符號時,例如 . 或 .. ,或者雙斜杠
path.normalize()
.
..
path.normalize('/users/joe/..//test.txt'); // '/users/test.txt'
resolve和normalize都不會檢查路徑是否存在。它們只是根據它們收到的信息計算路徑。