如何在Node中與檔案路徑互動並對其進行操作
從路徑中獲取資訊 處理路徑 系統中的每個檔案都有一個路徑。
在Linux和macOS上,路徑可能如下:
/users/flavio/file.txt
而Windows電腦則不同,其結構如下:
C:\users\flavio\file.txt
在應用程式中使用路徑時,需要注意這個差異。
您可以通過以下方式在文件中引入這個模組:
const path = require('path') 然後就可以使用其中的方法了。
從路徑中獲取資訊 給定一個路徑,可以使用以下方法從中獲取資訊:
dirname:獲取檔案的上級資料夾 basename:獲取檔案名稱部分 extname:獲取檔案擴展名 範例:
const notes = '/users/flavio/notes.txt' path.dirname(notes) // /users/flavio path.basename(notes) // notes.txt path.extname(notes) // .txt 如果要獲取沒有擴展名的檔案名稱,可以將第二個引數指定給basename:
path.basename(notes, path.extname(notes)) //notes 處理路徑 可以使用path.join()來結合路徑的兩個或多個部分:
const name = 'flavio' path.join('/', 'users', name, 'notes.txt') //'/users/flavio/notes.txt' 可以使用path.resolve()來計算相對路徑的絕對路徑:
path.resolve('flavio.txt') //'/Users/flavio/flavio.txt'(從我的家目錄執行時) 在這種情況下,Node會將/flavio.txt附加到當前工作目錄。如果您指定了第二個參數,resolve將使用第一個參數作為第二個參數的基礎:
path.resolve('tmp', 'flavio.txt')//'/Users/flavio/tmp/flavio.txt'(從我的家目錄執行時) 如果第一個參數以斜線開頭,則表示它是絕對路徑:
path.resolve('/etc', 'flavio.txt')//'/etc/flavio.txt' path.normalize()是另一個有用的函數,當路徑包含.、..或雙斜線等相對標識時,它將嘗試計算實際路徑:
path.normalize('/users/flavio/..//test.txt') ///users/test.txt resolve和normalize都不會檢查路徑是否存在。它們只是基於它們獲得的資訊計算一個路徑。