Node.js v0.11.11 マニュアル & ドキュメンテーション


Path#

Stability: 3 - Stable

このモジュールはファイルのパスに対する処理や変換を行うユーティリティを含みます。 ほとんどのメソッドは文字列の変換だけを行います。 パスが正しいか検証するためにファイルシステムに尋ねることはありません。

このモジュールを利用するにはrequire('path')を呼び出してください。 このモジュールは以下のメソッドを提供します。

path.normalize(p)#

複数のスラッシュが見つかると、それらは一つに置換されます; パスの最後にスラッシュが含まれていると、それは維持されます。 Windows ではバックスラッシュが使われます。

例:

path.normalize('/foo/bar//baz/asdf/quux/..')
// returns
'/foo/bar/baz/asdf'

path.join([path1], [path2], [...])#

全ての引数を一つに結合し、結果として得られるパスを正規化します。

引数は文字列でなくてはなりません。 v0.8 では、非文字列の引数は静かに無視されていました。 v0.10 以降では、例外がスローされます。

例:

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// returns
'/foo/bar/baz/asdf'

path.join('foo', {}, 'bar')
// throws exception
TypeError: Arguments to path.join must be strings

path.resolve([from ...], to)#

to の絶対パスを解決します。

もし to が既に絶対パスでなければ、絶対パスが見つかるまで from 引数を右から左の順で先頭に加えます。 全ての from を加えた後、パスがまだ絶対パスでなければ、カレントワーキングディレクトリが同様に使われます。 結果のパスは正規化され、解決されたパスがルートディレクトリでない限り末尾のスラッシュは削除されます。 文字列でない引数は無視されます。

それはシェルにおける cd コマンドの列だと考えることができます。

例:

path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

これは以下と同様です。

cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd

いは、それぞれのパスが必ずしも存在する必要がないことと、ファイルでも構わないことです。

例:

path.resolve('/foo/bar', './baz')
// returns
'/foo/bar/baz'

path.resolve('/foo/bar', '/tmp/file/')
// returns
'/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// if currently in /home/myself/node, it returns
'/home/myself/node/wwwroot/static_files/gif/image.gif'

path.isAbsolute(path)#

path が絶対パスかどうかを判定します。 絶対パスは現在の作業ディレクトリに関係なく、 常に同じ場所に解決されます。

Posix の例:

path.isAbsolute('/foo/bar') // true
path.isAbsolute('/baz/..')  // true
path.isAbsolute('qux/')     // false
path.isAbsolute('.')        // false

Windows の例:

path.isAbsolute('//server')  // true
path.isAbsolute('C:/foo/..') // true
path.isAbsolute('bar\\baz')   // false
path.isAbsolute('.')         // false

path.relative(from, to)#

from から to への相対パスを解決します。

二つの絶対パスがあり、一方から他方への相対パスを得なければならない場合があります。 これは実際のところ、path.resolve() とは逆の変換です。 それは以下を意味します:

path.resolve(from, path.relative(from, to)) == path.resolve(to)

例:

path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb')
// returns
'..\\..\\impl\\bbb'

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
// returns
'../../impl/bbb'

path.dirname(p)#

パスに含まれるディレクトリ名を返します。Unixの dirname コマンドと同様です。

例:

path.dirname('/foo/bar/baz/asdf/quux')
// returns
'/foo/bar/baz/asdf'

path.basename(p, [ext])#

パスの最後の要素を返します。Unixの basename コマンドと同様です。

例:

path.basename('/foo/bar/baz/asdf/quux.html')
// returns
'quux.html'

path.basename('/foo/bar/baz/asdf/quux.html', '.html')
// returns
'quux'

path.extname(p)#

パスの最後の要素について、最後の '.' から文字列の最後までのパスの拡張子を返します。 最後の要素に '.' が含まれていなかった場合、もしくは '.' が最初の文字だった場合は、空の文字列を返します。 例:

path.extname('index.html')
// returns
'.html'

path.extname('index.')
// returns
'.'

path.extname('index')
// returns
''

path.sep#

プラットフォーム固有のファイルセパレータ。 '\\' または '/'

*nix での例:

'foo/bar/baz'.split(path.sep)
// returns
['foo', 'bar', 'baz']

Windows での例:

'foo\\bar\\baz'.split(path.sep)
// returns
['foo', 'bar', 'baz']

path.delimiter#

プラットフォーム固有のパス区切り文字、';' または ':'

*nix での例:

console.log(process.env.PATH)
// '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'

process.env.PATH.split(path.delimiter)
// returns
['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']

Windows での例:

console.log(process.env.PATH)
// 'C:\Windows\system32;C:\Windows;C:\Program Files\nodejs\'

process.env.PATH.split(path.delimiter)
// returns
['C:\Windows\system32', 'C:\Windows', 'C:\Program Files\nodejs\']