Node.js 檔案路徑

系統中的每個檔案都有一個路徑。在 Linux 和 macOS 上,路徑可能看起來像這樣:/users/joe/file.txt,而 Windows 電腦則不同,其結構可能是:C:\users\joe\file.txt

在應用程式中使用路徑時,您需要注意這個差異。

您可以使用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()來連接路徑的兩個或多個部分

const name = 'joe';
path.join('/', 'users', name, 'notes.txt'); // '/users/joe/notes.txt'

您可以使用path.resolve()來計算相對路徑的絕對路徑

path.resolve('joe.txt'); // '/Users/joe/joe.txt' if run from my home folder

在這種情況下,Node.js 將簡單地將/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('/users/joe/..//test.txt'); // '/users/test.txt'

resolvenormalize都不會檢查路徑是否存在。它們只是根據它們收到的信息計算路徑。

閱讀時間
2 分鐘閱讀
貢獻
編輯此頁面
目錄
  1. 從路徑中獲取資訊
  2. 範例
  3. 處理路徑