2012-02-03 2 views
5

왜 "c :"경로를 지정하면 응용 프로그램 폴더로 직접 변경 되었습니까?C# 경로가 "C :"인 경우 directoryInfo가 응용 프로그램 폴더로 이동하는 이유는 무엇입니까?

C :

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

출력은 다음과 같다 \ consoleApplication9 빈 \ 디버그 \

그러나 때 사용자 \ ... \ 문서는 비주얼 스튜디오를 2010 \ 프로젝트 \ @"c:\" "d:"@"d:\"이 디스크 d:에 걸리더라도 디스크에갑니다.

그래서 나는 "c:" 사전에 디스크 c:

감사합니다 수 있도록하는 방법이 필요합니다!

+3

.. 당신이 예상되는 결과를 얻었을 것이다 리터럴 디렉토리 경로에 통과 한 것 그리고 변화에 혼란 스러울 것입니다 경우 이제! –

+0

'DirectoryInfo dir = new DirectoryInfo ("c : \\");'또는'DirectoryInfo dir = 새로운 DirectoryInfo (@ "c : \");'를 시도하십시오. –

+0

내 응용 프로그램에 대한 내 응용 프로그램에 대한 작동하지 않습니다 그냥 내 질문을 편집하십시오. –

답변

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

내 포인트가 유일한 사람입니다 .. 이것이 바로 할 수있는 유일한 방법이라고 생각합니다 덕분에 많이 –

+0

내 포인트를 얻은 유일한 사람은 .. 그렇습니다. 이것이 바로 할 수있는 유일한 방법이라고 생각합니다. 고마워요. –

+5

@MurHafSoz : 많은 사람들이 있다면 당신을 이해하지 못하면 자신을 더 분명하게 설명하는 것을 고려해야합니다. –

6

C :는 볼륨 지정자이므로 해당 볼륨의 현재 경로 (응용 프로그램의 작업 경로)로 변경됩니다.

D : 단순히 해당 볼륨의 현재 폴더가 루트에 있기 때문에 루트로 이동합니다.

+0

즉, 디스크의 경로를 지정하는'C : \'를 사용해야한다는 것을 확인하십시오 – linkerro

15

그냥 "c:"은 "C 드라이브의 현재 디렉토리"를 의미하는 반면 @"c:\"은 "C 드라이브의 루트"를 의미합니다. 이것은 당신이 C를 수행 할 때 시간에 다음

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

기본 디렉토리를 사용

0

enter image description here

... 명령 프롬프트에서 동일한 방식으로 작동 : 응용 프로그램이 그렇게 이해하지 않는다 응용 프로그램이 실행/실행 된 디렉토리의 디렉토리를 리턴합니다.

공지 사항이 DIR = {.} 그게 1983 년부터 일을 어떻게이기 때문에 당신은