2012-04-13 2 views
6
var baseUri = new Uri("http://localhost/"); 
var uri1 = new Uri(baseUri, "1"); 
var uri2 = new Uri(uri1, "2"); 

예기치 않게 은 http://localhost/2입니다. uri1에 어떻게 추가합니까? http://localhost/1/2 intead입니까? Uri이 작업을 수행합니까, 아니면 문자열로 폴백해야합니까? 덧붙여서, 나는 거의 모든 곳에서 선행/후행 슬래시를 추가하려고 시도했다.System.Uri로 여러 세그먼트 추가하기

답변

11

"1"과 "2"는 URL의 "파일 이름 부분"입니다. "URL은"경로 "를 가지고"파일 이름 부분이 "진짜 용어하지 않고 :

var baseUri = new Uri("http://localhost/"); 
var uri1 = new Uri(baseUri, "1/"); 
var uri2 = new Uri(uri1, "2"); 

참고 : 당신이 할 경우"1 "은 확인"1/"작동 이상의 디렉토리 경로처럼 보이게하기 쿼리 "구성 요소이지만 일반적으로 경로의 마지막 덩어리는 파일 이름 :"/foo/bar/file.txt "로 처리됩니다.

두 경로를 결합하면 첫 번째 경로의 꼬리 부분을 두 번째 경로로 바꿀 수 있습니다. 귀하의 경우에는 "/ 1"과 "2"("/myFile.txt"와 "NewFile.txt"같은 실제 값을 넣으면 더 쉽게 될 것입니다. 왜 이런 식으로 행동하는지보십시오).

+0

아, 그건 슬래시를 넣으려고해서는 안된 곳입니다. – Daniel

+1

내 대답 삭제 중. 또한, 이것이 http://compilify.net/bd –

+0

@Daniel에서 확인되었습니다. 왜 이런 식으로 행동하는지 보여줄 답변을 업데이트했습니다 ... –

관련 문제