多くの人は、ノードの最も便利な組み込みモジュールの1つである path モジュール。 これは、マシンのファイルシステム上のファイルとディレクトリのパス名を処理するのに役立つメソッドを備えたモジュールです。 この記事では、5つのツールを見ていきます。 path 提供します。

パスモジュールの使用を開始する前に、次のものを要求する必要があります。

const path = require('path');

注意事項: path OSによって動作が少し異なりますが、それはこの記事の範囲を超えています。 パスがPOSIXシステムとWindowsで機能する方法の違いについて詳しくは、パスのドキュメントを参照してください。

さて、それは邪魔にならないので、私たちが使用できるすべてのものを見てみましょう path 為に。

path.join

最も一般的に使用されるものの1つ path メソッドは path.join. The join メソッドは、ファイルパスの2つ以上の部分を取り、それらを1つの文字列に結合します。この文字列は、ファイルパスが必要な場所ならどこでも使用できます。 この例では、画像のファイルパスが必要であり、画像の名前があるとします。 簡単にするために、これはpngであると想定します。

const path = require('path');

let imageName = 'bob_smith';

let filepath = path.join(__dirname, '/images/useravatars/', imageName, '.png');
// We'll talk about what __dirname does a little later on.

console.log('the file path of the image is', filepath);
// the filepath of the image is
// C:/Users/.../intro-to-the-path-module/images/useravatars/bob_smith.png
// (actual output shortened for readability)

path.joinドキュメント

path.basename

による path ドキュメント、 path.basename メソッドは、パスの末尾部分を提供します。 素人の用語では、ファイルパスが参照するファイルまたはディレクトリの名前を返します。 この例では、画像の名前を知りたいが、ファイルパス全体が渡されたとします。

const path = require('path');

// Shortened for readability
let filepath = 'C:/Users/.../intro-to-the-path-module/images/useravatars/bob_smith.png';

let imageName = path.basename(filepath); 

console.log('name of image:', imageName);
// name of image: bob_smith.png

今、これはクールですべてですが、拡張機能なしでそれが必要な場合はどうなりますか? 私たちにとって幸運なことに、私たちはただ言わなければなりません path.basename それを削除します。

const path = require('path');

// Shortened for readability
let filepath = 'C:/Users/.../intro-to-the-path-module/images/useravatars/bob_smith.png';

let imageName = path.basename(filepath, '.png');

console.log('name of image:', imageName);
// name of image: bob_smith

path.basenameドキュメント

path.dirname

ファイルが含まれているディレクトリを知る必要がある場合もありますが、ファイルパスはそのディレクトリ内のファイルにつながります。 The path.dirname 関数は私たちのためにここにあります。 path.dirname ファイルパスの最下位レベルのディレクトリを返します。

const path = require('path');

// Shortened for readability
let filepath = 'C:/Users/.../Pictures/Photos/India2019/DSC_0002.jpg';

let directoryOfFile = path.dirname(filepath);

console.log('The parent directory of the file is', directoryOfFile);
// The parent directory of the file is C:/Users/moose/Pictures/Photos/India2019

path.dirnameドキュメント

path.extname

ファイルの拡張子を知る必要があるとしましょう。 この例では、ファイルが画像であるかどうかを通知する関数を作成します。 簡単にするために、最も一般的な画像タイプに対してのみチェックします。 を使用しております path.extname ファイルの拡張子を取得します。

const path = require('path');

let imageTypes = ['.png', '.jpg', '.jpeg'];

function isImage(filepath) {
  let filetype = path.extname(filepath);

  if(imageTypes.includes(filetype)) {
    return true;
  } else {
    return false;
  }
}

isImage('picture.png'); // true
isImage('myProgram.exe'); // false
isImage('pictures/selfie.jpeg'); // true

path.extnameドキュメント

path.normalize

多くのファイルシステムでは、ショートカットや参照を使用してナビゲーションを簡単にすることができます。 ...、それぞれ1つのディレクトリと現在の方向を意味します。 これらは迅速なナビゲーションとテストに最適ですが、パスをもう少し読みやすくすることをお勧めします。 と path.normalize、これらのショートカットを含むパスを、それが表す実際のパスに変換できます。 path.normalize この例が示すように、最も複雑なパスでも処理できます。

const path = require('path');

path.normalize('/hello/world/lets/go/deeper/./wait/this/is/too/deep/lets/go/back/some/../../../../../../../../..');
// returns: /hello/world/lets/go/deeper

path.normalizeドキュメント

🎉これで完了です。 この記事で取り上げるのはこれだけです。 ここで説明されているものよりもパスへの道がたくさんあることを覚えておいてください。公式のパスドキュメントをチェックすることをお勧めします。 うまくいけば、あなたは何かを学びました、そして読んでくれてありがとう!