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