[解決済み] ファイルパスにおけるフォワードスラッシュ(/)とバックスラッシュ(♪)の違いについて
質問
との違いが気になりました。
\
と
/
をファイルパスに含めることができます。私は、時々パスが
/
と一緒になっていることもあります。
\
.
をどのような場合に使用するのか、どなたか説明していただけると幸いです。
\
と
/
.
解決方法は?
/
は、UnixおよびUnix系システムでのパスセパレータです。最近のWindowsでは、一般的に
\
と
/
しかし、マイクロソフトは、ファイルパスには
\
をパスセパレータとして数十年間使用してきました。
これは、Windowsより10年以上前の1970年代にさかのぼる歴史的な理由によるものです。当初、MS-DOS(初期のWindowsの基盤)は、ディレクトリをサポートしていませんでした。Unixでは、ディレクトリをサポートするために
/
という文字が最初からありました。しかし、MS-DOS 2.0でディレクトリが追加されたとき、マイクロソフトとIBMはすでに
/
という文字を
コマンドスイッチ
また、DOSの軽量なパーサー(DOSでは
QDOS
低スペックのハードウェアで動作するように設計されています。
/
という文字を、既存のアプリケーションとの互換性を壊さずに使うことができるのです。
そこで、以下のようなコマンドの引数にファイルパスを渡す際に、"miss a switch" や "invalid switch" といったエラーを回避するために、以下のようにしました。
cd/ <---- no switch specified
dir folder1/folder2 <---- /folder2 is not a switch for dir
ということになりました。
\
という文字が使われるようになり、このようなコマンドを書くことができるようになりました。
cd\
dir folder1\folder2
をエラーなしで実行します。
その後、マイクロソフトとIBMは、DOSとは無関係のオペレーティングシステムである オーエスツー . OS/2は、おそらくより多くのUnix開発者を引きつけるために、両方のセパレータを使用する機能を備えていた。いつ 1990年、マイクロソフトとIBMが決別 マイクロソフトは、彼らが持っていたコードを使用して、次のコードを作成しました。 ウィンドウズNT このセパレータ不可知論を受け継いで、現代のすべてのWindowsのベースになっています。
DOS→Win16/DOS→Win16/Win32→Win32/WinNTというように、マイクロソフトはOSの大きな変遷の中で後方互換性を重視してきたため、この特殊性が定着し、今後もしばらくはこの傾向が続くと思われます。
そのために、この矛盾が存在するのです。というのも、私が言ったように、WinAPIは一般的にこれらを互換的に使用することができるからです。しかし、サードパーティーのアプリケーションは、もしあなたが
/
を期待しているのに
\
ディレクトリ名の間に Windowsを使用している場合は
\
. Unixまたは
URI
の場合 (これは Unix のパスが基礎になっていますが、全く別の話です)、そのパスには
/
.
C#の文脈では。
注意すべきは、この
は
技術的にはC#の質問ですが、(C#が主にWindowsの言語であるとしても)UnixとWindowsの両方で動作する、より"portable" なC#コードを書きたい場合は
Path.DirectorySeparatorChar
フィールドを使用して、そのシステムで優先的に使用されるセパレータを使用し、さらに
Path.Combine()
を使用して、適切にパスを追加してください。
関連
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Static readonly」対「const」。
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] SelectとSelectManyの違い
-
[解決済み] キーワード「ref」と「out」の違いは何ですか?
-
[解決済み] C#では、public、private、protected、アクセス修飾子がないことの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み] 関数を終了するには?
-
[解決済み】「namespace」なのに「type」のように使われる。