Node.jsで絶対パスからファイル名を簡単・確実に取得!初心者でも分かる3つの方法
Node.jsで絶対パスからファイル名を取得する方法
path.basename() モジュールを使う
const path = require('path');
const absolutePath = '/home/user/project/file.txt';
const fileName = path.basename(absolutePath);
console.log(fileName); // 'file.txt'
fs.statSync() メソッドを使う
const fs = require('fs');
const absolutePath = '/home/user/project/file.txt';
const stats = fs.statSync(absolutePath);
const fileName = stats.name;
console.log(fileName); // 'file.txt'
手動で分割する
const absolutePath = '/home/user/project/file.txt';
const fileName = absolutePath.split('/').pop();
console.log(fileName); // 'file.txt'
これらの方法のどれを使うかは、状況によって異なります。
// 1. `path.basename()` モジュールを使う
const path = require('path');
const absolutePath = '/home/user/project/file.txt';
const fileName = path.basename(absolutePath);
console.log(fileName); // 'file.txt'
// 2. `fs.statSync()` メソッドを使う
const fs = require('fs');
const absolutePath = '/home/user/project/file.txt';
const stats = fs.statSync(absolutePath);
const fileName = stats.name;
console.log(fileName); // 'file.txt'
// 3. 手動で分割する
const absolutePath = '/home/user/project/file.txt';
const fileName = absolutePath.split('/').pop();
console.log(fileName); // 'file.txt'
実行方法
- 上記のコードを
index.js
などのファイルに保存します。 - コマンドプロンプトまたはターミナルを開き、以下のコマンドを実行します。
node index.js
出力結果
file.txt
file.txt
file.txt
- このコードは、Node.js v14.17.0 で動作確認しています。
- ファイルが存在しない場合は、エラーが発生します。
const path = require('path');
const absolutePath = '/home/user/project/file.txt';
const pathObj = path.parse(absolutePath);
const fileName = pathObj.name;
console.log(fileName); // 'file'
path.parse()
モジュールは、パスを解析して、オブジェクトを返します。オブジェクトには、ファイル名、拡張子、ディレクトリ名などの情報が含まれています。
URL モジュールを使う
const url = require('url');
const absolutePath = '/home/user/project/file.txt';
const urlObj = new url.URL(`file://${absolutePath}`);
const fileName = urlObj.pathname.split('/').pop();
console.log(fileName); // 'file.txt'
正規表現を使う
const absolutePath = '/home/user/project/file.txt';
const fileName = absolutePath.match(/\/([^\/]+)\.[^\/]+$/)[1];
console.log(fileName); // 'file'
正規表現を使って、ファイル名を取得することもできます。
const os = require('os');
const absolutePath = '/home/user/project/file.txt';
const fileName = os.path.basename(absolutePath);
console.log(fileName); // 'file.txt'
os
モジュールは、OSに関する情報を提供します。os.path.basename()
メソッドを使って、ファイル名を取得することができます。
node.js path fs