Node.jsのパスモジュールの概要
多くの人は、ノードの最も便利な組み込みモジュールの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.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.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.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.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
🎉これで完了です。 この記事で取り上げるのはこれだけです。 ここで説明されているものよりもパスへの道がたくさんあることを覚えておいてください。公式のパスドキュメントをチェックすることをお勧めします。 うまくいけば、あなたは何かを学びました、そして読んでくれてありがとう!