2017年08月14日
川俣晶の縁側ソフトウェア技術雑記total 4021 count

【C#でファイルのパスをURIに変換する方法】が上手く機能しないケース

Written By: 川俣 晶連絡先

問題 §

C#でファイルのパスをURIに変換する方法が上手く機能しないケースがある。

再現コード §

using System;

class Program

{

    static void Main(string[] args)

    {

        var uri = new Uri(@"C:\###\b c%20.txt");

        Console.WriteLine(uri.AbsoluteUri);

        var uri2 = new Uri(@"C:\あ\b c%20.txt");

        Console.WriteLine(uri2.AbsoluteUri);

    }

}

.NET F/ W4までの実行結果 (期待通り) §

file:///C:/%23%23%23/b%20c%2520.txt

file:///C:/%E3%81%82/b%20c%2520.txt

.NET F / W 4.5以降での実行結果 (2つめは期待に反する) §

file:///C:/%23%23%23/b%20c%2520.txt

file:///C:/%E3%81%82/b%20c%20.txt

回避コード例 (%を別の文字に一時的に置き換えて処理させない) §

var uri = new Uri(filename.Replace("%", "*"));

return new Uri(uri.AbsoluteUri.Replace("*", "%25"));

参考URI §

https://developercommunity.visualstudio.com/content/problem/89895/uri-constructor-not-encode-character-after-net-45.html

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2017年
08月
16日
Visual Studio 2017 Update 3でC# 7.1の新機能を使用する方法
3days 0 count
total 5160 count
【技術雑記】の前のコンテンツ
2017年
08月
10日
ASP.NET CoreにSystem.Web.HttpUtility.HtmlEncodeが無い
3days 0 count
total 3597 count

このサイト内の関連コンテンツ リスト

2017年
08月
06日
C#でファイルのパスをURIに変換する方法
3days 0 count
total 9356 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20170814155439
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.