2010-04-07 8 views
11

상대 경로를 사용하여 모든 파일 이름을 추출하거나 잘못된 입력 오류를 발생시키는 VB.NET 콘솔 응용 프로그램을 작성하고 있습니다. 나는 상대 경로에서 문제가 점점 PhysicalPath 인자를 데VB.NET의 절대 경로 상대 경로

예 :

  1. 내가 폴더에서 오전 C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. 내 응용 프로그램, SP.exe이 같은 폴더도 있습니다.

  3. 실행 범위는 "SP.exe ..\"입니다. 출력은 폴더에있는 모든 파일의 목록이됩니다 "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. 내가 실행합니다 : "SP.exe ..\\..\". 출력은 폴더의 모든 파일 목록입니다. "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. 나는 실행합니다 : "SP.exe ..\\..\\..\". 출력은 "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

은 현재 내가 한 상대 경로를 처리하고있는 폴더에있는 모든 파일의 목록 수 없습니다, 그러나 더 :

If Source.IndexOf("..\") = 0 Then 
     Dim Sibling As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString()()) 
     Source = Source.Replace("..\", Sibling) 
    End If 

어떻게 쉽게 여러 ..\을 처리 할 수 ​​있습니까?

답변

22

찾고 계신 분은 System.IO.Path.GetFullPath()입니다. 모든 유형의 상대 경로를 처리해야합니다.

+0

+1, 저를 때려 눕히세요! :) –

+0

고마워, 잘됐다! –

+0

@Mehdi : 문제의 해결책 인 것처럼 보이므로 위쪽/아래쪽 화살표 옆에있는 체크 표시를 사용하여 답변으로 표시하는 것이 좋습니다. –