.NET 응용 프로그램의 일부는 입력 문자열 (URI를 나타냄)을 가져와 파일 이름 (및 해당되는 경우 확장명) 만 반환해야합니다.Path.GetFileName 버그?
이제 Path.GetFileName
는 다음을 제외하고, 대부분의 경로에 대한이 완벽하게 정상적으로 수행 : 입력 문자열이 만 도메인 이름으로 구성 HTTP 경로 (예 : example.com)과 포트 번호 (예 : 10210), GetFileName
반환하는 경우 포트 번호.
간단한 영어로 : 입력 문자열은 인터넷 라디오 스트림에 연결되는 URI 인 http://example.com:10210
입니다. 해당 값으로 Path.GetFileName
이 호출되면 반환 값은 10210
입니다.
이것은 의도 한 동작입니까? 콜론으로 경로 세그먼트를 구분하는 플랫폼을 생각해 낼 수 없습니다. 반환 값은 String.Empty
이 아니어야합니까?
편집
이 Uri.LocalPath
와 System.Web.VirtualPathUtility.GetFileName
사이 매시업 것 깨끗한 솔루션 것 같아,하지만 전체 프레임 워크 클라이언트 프로파일에서 다시 표적으로 프로젝트를 의미한다.
마지막 슬래시 기호 앞에 모든 것을 제거한다고 생각합니다. 어쨌든 필자의 시나리오에서는 구분 기호가 변경되지 않습니다. 그렇게하면 반환 값으로 example.com:10210
이 나와 어떤 일을하는지 이해할 수 있습니다.
오 ... 글쎄 그건 부끄러운 일입니다. 그것은 실제로 내가 설명했던 것들을 제외하고 당신이 던질 수있는 거의 모든 종류의 URI를 위해 작동합니다. –