Path

公式ドキュメント: https://nodejs.org/dist/latest-v7.x/docs/api/path.html
ここでは、POSIXメインで書いていきます。

const path = require('path');

変数

sep

各プラットフォーム固有のパスセグメント区切り文字を提供します。

path.sep;
// '/'
// windowsの場合は '\\'
'foo/bar/piyo.js'.split(path.sep);
// [ 'foo', 'bar', 'piyo.js' ]

delimiter

各プラットフォーム固有のパス区切り文字を提供します。

path.delimiter;
// ':'
console.log(process.env.PATH);
// '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'
process.env.PATH.split(path.delimiter)
// ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']

posix

posix固有実装のアクセスを提供します。

path.posix
// Object

win32

windows固有実装のアクセスを提供します。

path.win32
// Object

ファイルパスの条件取得

basename

ディレクトリのパスを抜いたファイル名を取得する。
第二引数に拡張子を指定することにより、その拡張子を除くことができる。

パラメータ 説明
path String ファイルパス
ext(opt) String 拡張子
path.basename('/foo/bar/piyo.js');
// 'piyo.js'
path.basename('/foo/bar/piyo.js', 'js');
// 'piyo'

dirname

path.basenameとは反対に、ディレクトリのパスからファイル名を抜いたパスを取得します。

パラメータ 説明
path String ファイルパス
path.dirname('/foo/bar/piyo.js');
// '/foo/bar'

extname

そのファイルの拡張子を取得します。
ない場合は空文字を返します。

パラメータ 説明
path String ファイルパス
path.extname('/foo/bar/piyo.js');
// '.js'
path.extname('piyo.js.x');
// '.x'

ファイルパスの解析

format

整形されたファイルパスを生成します。

以下の点に注意してください。

  • dirが指定されている時、rootは無視されます
  • baseが指定されている時、nameとextは無視されます
パラメータ 説明
pathObject Object
- dir String ディレクトリ名
- root String 基底パス
- base String ファイル名(拡張子含む)
- name String ファイル名(拡張子含まない)
- ext String 拡張子

パラメータ定義

┌─────────────────────┬────────────┐
│          dir        │    base    │
├──────┬              ├──────┬─────┤
│ root │              │ name │ ext │
"  /    home/user/dir / file  .txt "
└──────┴──────────────┴──────┴─────┘
path.format({
  dir: '/foo/bar',
  root: '/ignored', // dirが指定されているので無視される
  base: 'piyo.js'
});
// '/foo/bar/piyo.js'

path.format({
  ext: 'ignored', // baseが指定されているので無視される
  root: '/',
  base: 'piyo.txt'
});
// '/piyo.txt'

path.format({
  ext: '.js',
  root: '/',
  name: 'piyo'
});
// '/piyo.js'

parse

formatとは反対に、整形されたファイルパスを分解します。

パラメータ 説明
path String ファイルパス
path.parse('piyo.js');
// {
//   root: '',
//   dir: '',
//   base: 'piyo.js',
//   ext: '.js',
//   name: 'piyo'
// }
path.parse('/foo/bar/piyo.js');
// {
//   root: '/',
//   dir: '/foo/bar',
//   base: 'piyo.js',
//   ext: '.js',
//   name: 'piyo'
// }

絶対パス、相対パス

resolve

与えられたパス、またはパスセグメントを絶対パスへ変換します。
引数が空の場合は現在の作業ディレクトリの絶対パスを返します。

パラメータ 説明
...paths String ファイルパス
path.resolve('/foo/bar', 'piyo.js');
// '/foo/bar/piyo.js'
path.resolve('foo/bar', 'piyo.js');
// '/Users/about_hiroppy/foo/bar/piyo.js'

isAbsolute

与えられたパスが絶対パスになっているかどうかを判断します。

パラメータ 説明
path String ファイルパス
path.isAbsolute('/foo/bar');
// true
path.isAbsolute('./foo/bar');
// false

relative

resolveとは反対に、与えられたfromからtoへの相対パスを返します。

パラメータ 説明
from String 基準となるディレクトリ
to String 目的となるディレクトリ
path.relative('/foo/bar/piyo.js', '/foo/hoge');
// '../../hoge'

正規化

join

与えられたパスをすべて結合し正規化したパスを取得します。
結合のデリミタはプラットフォームに依存します。
引数が空の場合は.を返します。

パラメータ 説明
...paths String ファイルパス
path.join('foo', '/bar', 'piyo.js');
// 'foo/bar/piyo.js'
path.join('foo', '/bar', 'piyo.js', '..');
// 'foo/bar'

normalize

与えられたパスの.., .セグメントの解決を行います。
引数が空の場合は.を返します。

パラメータ 説明
path String ファイルパス
path.normalize('/foo/bar/../bar/piyo.js');
// '/foo/bar/piyo.js'

results matching ""

    No results matching ""