ため
おかげで - 私は実際には、おそらくこれを行うためのクリーンな方法で使用したと思う:
let { dir, name, ext } = path.parse("a/path/to/file.json");
let path1 = path.join(dir, name + "-original" + ext);
let path2 = path.join(dir, name + "-comarand" + ext);
このコードスニペットはdestructuringを使用しているため、それを実行するには最近のバージョンのNodeが必要です。それはあなただけで正常に解析されたパスオブジェクトにアクセスするとそれを置き換えることができ、言った:
let p = path.parse("a/path/to/file.json");
let path1 = path.join(p.dir, p.name + "-original" + p.ext);
let path2 = path.join(p.dir, p.name + "-comarand" + p.ext);
ないようにはるかに悪いです!
これはあなたのプロジェクトで頻繁にやっているだろう何かである場合、そうのように、効用関数にそれを持ち上げるには余りにも難しいことではないでしょう:@のジョーの答えに加えて
function suffixFilename(path, suffix) {
let { dir, name, ext } = path.parse(path);
return path.join(dir, name + "-" + suffix + ext);
}
let path1 = suffixFilename("a/path/to/file.json", "original");
let path2 = suffixFilename("a/path/to/file.json", "comparand");
これは私の最初の考えでしたが、絶対パスの場合は 'ルート'を考慮する必要があります。パスオブジェクトに 'isAbsolute'関数がありますが、コードはそれほど単純ではかなり複雑になります。私は何かを見逃しているに違いないと推測した。 – moefinley
@moefinley: 'dir'は常にパスの'ルート 'を含みます(もしあれば)。このメソッドは相対パスと絶対パスを処理する必要があります。つまり、私はこのPC上の適切なNode環境にアクセスすることができないので、それを確かめることはできません! –
D'oh、はいそうです。私はドキュメントを読んでいないと思う。ありがとう。 – moefinley