5

パス「c:」を指定すると、アプリケーションフォルダに直接変更されたのはなぜですか?

    static void Main(string[] args)
    {
        DirectoryInfo dir = new DirectoryInfo("c:");
        Console.WriteLine(dir.FullName);
        Console.ReadLine();
    }

出力は次のとおりです。

c:\ users ... \ document \ visual studio 2010 \ projects \ consoleApplication9 \ bin \ debug

しかし、私がそれを与えると、それ にもかかわらず@"c:\"ディスクに行き、ディスクにかかります。c:"d:"@"d:\"d:

"c:"だから私はディスクにテイクをさせる方法が必要ですc:

前もって感謝します!

4

4 に答える 4

15

単に"c:"「Cドライブの現在のディレクトリ」を@"c:\"意味し、「Cドライブのルート」を意味します。これは、コマンドプロンプトからも同じように機能します...

于 2012-02-03T14:41:14.067 に答える
6

C:は単なるボリューム指定子であるため、そのボリューム上の現在のパスに変更されます。これは、アプリケーションの作業パスになります。

D:そのボリュームの現在のフォルダがたまたまルートにあるという理由だけで、ルートに移動します。

于 2012-02-03T14:40:45.330 に答える
2
static void Main(string[] args) 
    { 
        string YourDir = "c:";

        if (!YourDir.Substring(YourDir.Length - 1, 1).Equals(@"\"))
            YourDir += @"\";
        DirectoryInfo dir = new DirectoryInfo(YourDir); 
        Console.WriteLine(dir.FullName); 
        Console.ReadLine(); 
    } 
于 2012-02-03T14:45:26.530 に答える
0

ここに画像の説明を入力してください

以下を使用してください

  static void Main(string[] args)
  {          
      DirectoryInfo dir = new DirectoryInfo(@"c:\");
      Console.WriteLine(dir.FullName);
      Console.ReadLine();
  }       

c:アプリケーションがそれを理解しないときのベースディレクトリは、アプリケーションが起動/実行された場所のディレクトリを返します。

dir = {。}であることに注意してください。リテラルディレクトリパスを渡した場合、期待どおりの結果が得られます。

于 2012-02-03T14:43:48.110 に答える