2012-02-03 29 views
5

爲什麼當我給路徑「C:」它直接改變我的應用程序文件夾?c#爲什麼當路徑是「C:」directoryInfo帶我到應用程序文件夾?

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

輸出如下:

C:\用戶\文檔\ Visual工作室 2010 \項目\ consoleApplication9 \ BIN \調試

但是,當我儘管"d:"@"d:\"需要到磁盤d:,但它給出@"c:\"它到磁盤c:

所以我需要一種方法來讓"c:"需要磁盤c:

提前感謝!

+3

因爲這是它是如何自1983年以來的工作,這將是混亂的變化現在! – 2012-02-03 14:47:45

+0

試試'DirectoryInfo dir = new DirectoryInfo(「c:\\」);'或'DirectoryInfo dir = new DirectoryInfo(@「c:\」);'。 – 2012-02-03 14:51:37

+0

不適用於我的應用程序我的應用程序我只是編輯我的問題..檢查出 – 2012-02-03 14:56:36

回答

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(); 
    } 
+0

你是唯一得到我的觀點..所以我想這是唯一的方法來做正確的 非常感謝 – 2012-02-03 14:57:55

+0

你是唯一的誰得到了我的觀點..所以我想這是唯一的方法做對 非常感謝 – 2012-02-03 14:58:11

+5

@MurHafSoz:如果很多人是不理解你,你應該考慮更清楚地解釋自己。 – 2012-02-03 16:31:18

6

C:只是體積說明符,因此它將更改爲該捲上的當前路徑,這將成爲應用程序的工作路徑。

D:因爲您當前的該卷的當前文件夾恰好位於根目錄,因此將您帶到根目錄。

+0

這意味着你應該使用'C:\'它指定的磁盤上的路徑以及 – linkerro 2012-02-03 14:41:58

15

只是"c:"的意思是「C驅動器上的當前目錄」,而@"c:\"的意思是「C驅動器的根」。這種工作方式相同,在命令提示符下...

0

enter image description here

當你做c。使用以下

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

的基本目錄的時候:應用程序不明白,所以它將返回應用程序啓動/運行所在的目錄。

注意DIR = {}如果您願意,你會得到預期的結果的文本目錄路徑已經過去了..

相關問題