
javascript(nodejs)でフルパスからファイル名のみを取得する方法をサンプルコード付きで備忘として記録しています。 Windows と Unix系(Linux、MacOS含む)に対応しています。
ファイル名で条件分岐したいときや、フィルタをかけたい時などに有用です。
ソフトウェア | バージョン |
---|---|
node.js | v16.13.0 |
与えられた FullPath から末尾のファイル名のみを抽出する方法でWindowsとUnix系の 両方に対応したコードを考えます。
まずは Windows の nodejs で動作させたもの。
「C:\02_data\01_dev\03_nodachisoftweb\contents\sample.js」 のパスからファイル「sample.js」を取り出してみます。
var GetFilenameWindows = (path) => path.split('\\').pop();
var fulllpath_windows = "C:\\02_data\\01_dev\\03_nodachisoftweb\\contents\\sample.js";
console.log(GetFilename(fullpath_windows));
実行した結果は以下のようになりました。ちゃんとファイルが取得できています。
> node sample.js
sample.js
これだけでは Unix系(Linux、MacOSなど)に対応しておらず、両方対応をしたバージョンの関数、GetFilenameWindows を定義してみます。
var GetFilename = (path) => path.split('/').pop().split('\\').pop();
var fullpath_windows = "C:\\02_data\\01_dev\\03_nodachisoftweb\\contents\\sample.js";
var fullpath_unix = "/home/amaji/sample.js";
console.log("from Windows path : " + GetFilename(fullpath_windows));
console.log("from Linux path : " + GetFilename(fullpath_unix));
実行結果は以下の通りです。
> node sample.js
from Windows path : sample.js
from Linux path : sample.js
ほかにもやり方は沢山ありますが、めっちゃシンプルなので、とりあえずこちらのみ掲載。
以下の関数を使用します。
var GetFilename = (path) => path.split('/').pop().split('\\').pop();
日付 | 変更概要 |
---|---|
なし |
コメント、ありがとうございます。
ごめんなさい。エラーでうまく送信できませんでした。ご迷惑をおかけします。しばらくおいてから再度送信を試していただくか、以下から DM などでご連絡頂ければと思います。
Twitter:@NodachiSoft_jpお名前:以下の内容でコメントを送信します。よろしければ、「送信」を押してください。修正する場合は「戻る」を押してください
お名前: