node.jsでパスの操作

node.jsでパスを操作するサンプルコードです。

実行結果は、Windowsで実行したときのものです。

絶対パスに変換する

const path = require('path');

const dir = path.resolve('C:/temp/path/sample.txt', '../dat');
console.log(dir); // => C:\temp\path\dat

相対パスを取得する

fromからtoへの相対パスを取得します。

const path = require('path');

const from = 'C:/temp/path/sample.txt';
const to = 'C:/temp/foo/bar';
console.log(path.relative(from, to)); // => ..\..\foo\bar

パスを分解する

const path = require('path');

const filename = 'C:/temp/path/sample.txt';

// ディレクトリ名を取得する
console.log(path.dirname(filename)); // => C:/temp/path

// ファイル名を取得する
console.log(path.basename(filename)); // => sample.txt

// ファイル名から拡張子を削除する
console.log(path.basename(filename, path.extname(filename))); // => sample

// 拡張子を取得する
console.log(path.extname(filename)); // => .txt

まとめて取得できます。

const path = require('path');

const parsedPath = path.parse('C:/temp/path/sample.txt');
console.log(parsedPath.root); // => C:/
console.log(parsedPath.dir); // => C:/temp/path
console.log(parsedPath.base); // => sample.txt
console.log(parsedPath.ext); // => .txt
console.log(parsedPath.name); // => sample

絶対パスかどうかを判定する

const path = require('path');

console.log(path.isAbsolute('/foo/bar')); // => true
console.log(path.isAbsolute('C:/foo/..')); // => true
console.log(path.isAbsolute('foo/bar')); // => false

パスを結合して、正規化したパスを取得する

const path = require('path');

console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // => \foo\bar\baz\asdf
console.log(path.join('C:/foo', 'bar', '..', 'baz')); // => C:\foo\baz

パスを正規化する

const path = require('path');

console.log(path.normalize('/foo/bar//baz/asdf/quux/..')); // => \foo\bar\baz\asdf
console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\')); // => C:\temp\foo\

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください