私の.NETアプリケーションの一部は、入力文字列(URIを表す)を受け取り、ファイル名(および該当する場合は拡張子)のみを返す必要があります。
Path.GetFileName
これで、次の例外を除いて、ほとんどのパスでこれが完全に正常に実行されます。入力文字列がドメイン名(example.comなど)とポート番号(10210など)のみで構成されるHTTPパスの場合、ポート番号を返しGetFileName
ます。
簡単な英語:入力文字列はhttp://example.com:10210
、インターネットラジオストリームにリンクするURIです。その値でが呼び出された場合Path.GetFileName
、戻り値は10210
です。
これは意図された動作ですか?パスセグメントをコロンで区切るプラットフォームを思い出せません。戻り値はすべきではありませんString.Empty
か?
編集
クリーンなソリューションはとの間のマッシュアップのようですが、それはUri.LocalPath
プロジェクトSystem.Web.VirtualPathUtility.GetFileName
をクライアントプロファイルから完全なフレームワークに再ターゲットすることを意味します。
最後のスラッシュ記号の前(およびそれを含む)のすべてを削除するだけだと思います。とにかく私のシナリオではセパレーターは決して変わりません。そうすることで、私example.com:10210
は戻り値として得られます。これは、私が行っていることに意味があります。