情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでパスを絶対パスに変換する

パスを絶対パスに変換するにはpath.resolve関数を使用します。

第1引数以降にパスを指定します。

返り値として絶対パスが得られます。

変換方法

パスを絶対パスに変換する方法は下のようになります。

最初に、パスの中に絶対パスがないか調べます。

たとえば、path.resolve('a\\b', '\\c\\d', '\\e\\f', '..', 'g\\h')という風にpath.resolve関数が呼び出された場合には最も右のパス、すなわち、第5引数のパスから絶対パスを探します。最も右のパスから調べた場合の最初の絶対パスは第3引数の\\e\\fです。これが基準となる絶対パスとなります。

次に、基準となった絶対パスにそれより後の相対パスを順番に適用していきます。

たとえば、上の例の場合、基準となった絶対パスは第3引数の\\e\\fであり、これに第4引数以降の\\e\\f..g\\hを順番に適用します。結果として\\e\\g\\hという絶対パスが得られ、これが最終結果の絶対パスとなります。

なお、全てのパスが絶対パスでなかった場合にはカレントワーキングフォルダの絶対パスが基準となる絶対パスとなり、第1引数以降の相対パスを順番に適用していきます。

サンプルコード1

path-resolve.js

var path = require('path');

console.log(path.resolve('a\\b', '\\c\\d', '\\e\\f', '..', 'g\\h'));
console.log(path.resolve('a\\b', 'c\\d', '.\\e\\f', '..\\g\\h'));
console.log(path.resolve(''));

実行結果

C:\work\node>node path-resolve.js
C:\e\g\h
C:\work\node\a\b\c\d\e\g\h
C:\work\node

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js