🏤

SharePoint の URL をデコードする WPF アプリ

2024/06/01に公開

URL エンコードされたリンクを日本語にデコードするだけ

Decode URL

Power Automate Desktop で使う SharePoint のアドレス、どうやって準備していますか?

PAD でフローを作るとき、サイトのアドレスをフローに直接書かず、設定ファイルを用意して読み取って使いますか? 使いますよね? 使うという前提で進めます。

Excel ファイルを設定ファイルとして使用している場合はこんなイメージになるかと思います。

Json を使用しているならこう。

{
  "sharepoint": [
    {
      "siteAddress": "https://hogehoge.sharepoint.com/sites/○○○",
      "sitePath": "/Shared Documents/○○/○○担当/日本語のフォルダー名/ほげほげ",
      "itemName": "元ファイル.xlsx"
    },
    {
      "siteAddress": "https://hogehoge.sharepoint.com/sites/○○○",
      "sitePath": "/Shared Documents/○○/○○担当/日本語のフォルダー名/ほげほげ",
      "itemName": "更新ファイル.xlsx"
    }
  ]
}

URL エンコードされた状態のリンクでは取得できないので、こう日本語にして使うと思います。

そこで、ブラウザーの URL 欄からコピーしたテキストをデコードするときに、社内のアドレスを外部のサイトに入力するのはちょっと……と、抵抗のある方もいると思います。自分がそうです。サーバーには送信されないのがわかっていても控えちゃう。

ツールを使わなくてもブラウザーの URL 欄からコピーするときに先頭の h を外してコピーで十分だったりします。こっちを使っていました。
https://qiita.com/ntoreg/items/4a97304dd2861b64a8b6

この方法でデコードしたあと、半角記号の置換と、不要な部分を削除する必要があって面倒だったので今回作りました。


仕様

  • Power Automate 用の SharePoint アクションで使用するパラメーターに沿った URL を出力
パラメーター
サイトのアドレス https://contoso.sharepoint.com/sites/sitename
フォルダーのパス /Shared Documents/Reports

https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/sharepoint

https://github.com/ricewin/DecodeURL/blob/master/README.md


おわりに

今回書いた C# のコードで URL をデコードする部分は、

var decodeUrl = HttpUtility.UrlDecode(inputBox.Text);

これだけなので、興味があったらぜひ自分で作ってみてはどうでしょうか?


WPF アプリを作るのに、以下の本がとても参考になりました。💛

https://zenn.dev/apterygiformes/books/470ba1042dfbef

Discussion