Nodejs 第 12 章 (パス)

パスモジュールはオペレーティングシステムごとに異なります (Windows | posix)

windowsあなたはそれをよく知っているはずですが、posix聞いたことがないかもしれません

posix(UNIXのポータブルオペレーティングシステムインターフェース)

posix は、一連の標準を定義するポータブル オペレーティング システム インターフェイスの略です。この一連の標準に準拠するオペレーティング システムは (unix、unix、linux、macOs、windows wsl など) です。なぜこの一連の標準を定義する必要があるのでしょうか。 Linux システムで開始するのと同じですか? プロセスはfork関数を呼び出す必要があり、Windows でプロセスを開始creatprocessする場合は関数を呼び出す必要があるため、問題が発生します。たとえば、Linux でコードを書いたので、それを Linux システムに移植する必要があります。 Windows では機能が統一されていないことがわかり、この問題を解決するために POSIX 標準が登場しました。

Windows は POSIX 標準に完全には準拠していません。Windows は、POSIX とは異なる方法でパスを表すように設計されています。

Windows システムでは、パスは\パス区切り文字としてバックスラッシュ ( ) を使用します。これは、POSIX システムで使用されるスラッシュ () とは/異なります。これは、以前の Windows オペレーティング システムでは異なる設計選択が行われてきた Windows システムの歴史によるものです。

Windows posixの違い

path.basename()このメソッドは、指定されたパスの最後の部分を返します。

posix で Windows パスを処理する

path.basename('C:\temp\myfile.html');
// 返回: 'C:\temp\myfile.html'

返された結果は myfile.html に対応しません

posix システムで Windows パスを処理し、対応するオペレーティング システムのメソッドを呼び出す必要がある場合は、次のように変更する必要があります。

path.win32.basename('C:\temp\myfile.html');

myfile.html に戻る

パス.ディレクトリ名

この API は、basename を完全に補完します。

path.dirname('/aaaa/bbbb/cccc/index.html')

dirname API は、最後のパスを除いて /aaaa/bbbb/cccc を返します。

Basename API は最後のパスを返します。

パス.extname

この API は拡張子を返すために使用されます。たとえば、/bbb/ccc/file.txt は .txt を返します。

path.extname('/aaaa/bbbb/cccc/index.html.ccc.ddd.aaa')
//.aaa

複数ある場合は最後のものを返します 拡張子がない場合は空を返します

パス.結合

この API は主にパスを接続するために使用されます

path.join('/foo','/cxk','/ikun')
// /foo/cxk/ikun

... ./ .../ 演算子をサポートできます

path.join('/foo','/cxk','/ikun','../')
// /foo/cxk/

パス.解決

相対パスを解決して返すために使用されます。绝对路径

複数の絶対パスが渡された場合は、右端の絶対パスが返されます。

path.resolve('/aaa','/bbb','/ccc')
//   /ccc

絶対パス+相対パスで渡します

path.resolve(__dirname,'./index.js')
//  /User/xiaoman/DeskTop/node/index.js

相対パスのみが渡される場合

path.resolve('./index.js')
// 返回工作目录 + index.js

パス.解析パス.形式

path.format と path.parse は完全に補完的です

parse

ファイルパスを解決するために使用されます。パス文字列を入力として受け取り、パスのさまざまなコンポーネントを含むオブジェクトを返します。

path.parse('/home/user/dir/file.txt')

{
    
    
  root: '/',
  dir: '/home/user/dir',
  base: 'file.txt',
  ext: '.txt',
  name: 'file'
}
  • root: パスのルート ディレクトリ、つまり /
  • dir: ファイルが存在するディレクトリ /home/user/documents
  • base: ファイル名、つまり file.txt
  • ext: ファイル拡張子、つまり .txt.
  • name: 拡張子を取り除いたファイル名、つまり file.

format は逆にオブジェクトを文字列に変換します。

path.format({
    
    
    root: '/',
    dir: '/home/user/documents',
    base: 'file.txt',
    ext: '.txt',
    name: 'file'
 })
 // /home/user/dir/file.txt

おすすめ

転載: blog.csdn.net/qq1195566313/article/details/132338169