ご存知のとおり、Windowsではパスをバックスラッシュで表し、Unixではパスをスラッシュで表します。node.jsはpath.join()
常に正しいスラッシュを使用します。たとえば、 Unix only と書く代わりに、'a/b/c'
次のようにしますpath.join('a','b','c')
。
ただし、この違いにもかかわらず、パスを正規化せず (path.join を使用するなど)、a/b/c
node.js のようにパスを記述するだけでは、Windows でスクリプトを実行しても問題はないようです。
path.join('a','b','c')
では、上書きするよりも利点はあるのでしょうか'a/b/c'
? どちらもプラットフォームに関係なく動作するようです...
ベストアンサー1
Windows ファイルシステムでは、パス区切り文字としてスラッシュまたはバックスラッシュのどちらを使用しても問題ありません (これは DOS の時代からそうでした)。唯一の問題は、Windows のコマンドライン プロセッサ (または、より具体的には、Windows ネイティブのコマンドライン ユーティリティ) が、スラッシュをパス コンポーネントではなくオプション指定子として解釈する傾向があることです。したがって、サブプロセスとして実行される Windows コマンドにパスを渡す必要がある場合は、バックスラッシュ付きのパスが必要です。また、パスを返す Windows API 呼び出し (および Windows API を呼び出す高水準言語のメソッド) はバックスラッシュを使用するため、サブプロセスに渡さない場合でも、バックスラッシュを正規化する必要があります。