4

Windows と Linux の両方で実行できる必要がある C# コンソール アプリに取り組んでいます。.NET 3.5 と Mono で動作します。現在実行中のディレクトリ内にディレクトリが存在するかどうかを確認できるようにしたいと考えています。Windows はディレクトリ トラバーサルにバックスラッシュを使用し、Linux はスラッシュを使用するため、ディレクトリが別のディレクトリ内に存在するかどうかを確認するにはどうすればよいですか?

System.IO.Directory.Exists を使用しています。これを行う簡単な方法は、最初に現在の作業フォルダーで「/」または「\」をチェックして、どちらを使用するかを決定することだと思いますが、場合によっては、混乱するエスケープ文字が存在する可能性があります!

4

2 に答える 2

6

Path.Combineパスを構築するために使用します。次のコードを検討してください。

var path = Path.Combine(
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
    "childFolder");
于 2013-06-13T03:56:14.087 に答える
5

Windows はこれに対してかなり寛容です。スラッシュを使用すると理解できます。

混乱する可能性を冒したくない場合 (Windowsが常にこれを理解しているとは 100% 確信が持てません)、以下を使用できます。Path.DirectorySeparatorChar

于 2013-06-13T03:55:32.263 に答える