Windowsはいつからスラッシュをパス区切り文字としてサポートしていたのか?

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20240131 105827

Windowsはパスの区切り文字として「\(バックスラッシュ)」を採用している事はよく知られています。

/(スラッシュ)」を採用しているmacOSやLinuxとは異なり、さらに日本では「(円記号)」として表示されることから、これを嫌っているユーザーも多数存在しますが、実はWindowsはパスの区切り文字として「/(スラッシュ)」も認識するようです。

Windowsがいつからスラッシュをファイルの区切り文字として認識していたのかに関する議論がStack Exchangeで行われ、「MS-DOS 2.0以降でサポートしていた」などの興味深い情報が寄せられていることがわかりました。

質問者はMicrosoftの公式サポートドキュメントの説明を引用し、Windowsがいつからフォワードスラッシュ(普通のスラッシュ)をサポートするようになったのかを質問しています。

MicrosoftのPath.DirectorySeparatorCharの説明:

Note that Windows supports either the forward slash (which is returned by the AltDirectorySeparatorChar field) or the backslash (which is returned by the DirectorySeparatorChar field) as path separator characters, while Unix-based systems support only the forward slash.

Windowsでは、パス区切り文字としてフォワード・スラッシュ(AltDirectorySeparatorCharフィールドが返す)とバックスラッシュ(DirectorySeparatorCharフィールドが返す)のどちらかをサポートしているが、Unixベースのシステムではフォワードスラッシュのみをサポートしていることに注意。

これに対して、以下のような回答が行われています。

  • DOS 2.0以降は両方をサポートしていたため、すべてのDOSの機能はどちらの方法でも正しく動作する
  • 新しいWindowsバージョン(NT以降)はその動作をコピーした。
  • Windowsのアプリケーションは、ファイル名のパース時に、常にその挙動に従うとは限らず、どちらかを受け入れる場合もあれば、受け入れない場合もある。

M7Gyg

▲MS-DOS 2.0でスラッシュで区切られたパスを指定して、メモ帳を開く様子が確認できます。

この回答が正しければ、DOSやWindows自体はスラッシュを受け付けるものの、Windows上で動作するアプリケーションはスラッシュで区切られたパス文字列を正しく扱えないこともあるため、注意が必要ということになりあmす。

Hacker Newsにも、CMD.EXEは両方サポートしているが、COMMAND.COMはスラッシュをサポートしていないなど、追加の情報が寄せられています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次