none
BrowseForFolder ダイアログで 255 文字以上のパスを取得する方法について RRS feed

  • 質問

  • オペレーター挿入 - 以下のスレッドにご質問いただいていたので、分割いたしました。 -
    Canonのデジカメからファイル一覧を取得したい
    https://social.msdn.microsoft.com/Forums/ja-JP/11220527-a7af-4c78-b125-5a97feea83ef/canon?forum=netfxgeneralja

    - ご質問本文 -

    私も今、PCでUSB接続したスマホからフォルダを指定して画像を「スマホ→PC」にコピーするプログラムをC#で書いています。

    そして、同じサンプルソースにたどり着き shell.BrowseForFolder を使用しています。

    しかし、shell では、255文字までのパスしか取扱できないため、

    しかし、エクスプローラで見えるパスが

    PC\PAPA PAO (SC-02G)\Card\PAO
    の場合、BrowseForFolderで取得するパスは、ユーザフレンドリーでない
    ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\\?\usb#vid_04e8&pid_6860&ms_comp_mtp&samsung_android#8&351601ef&0&0000#{6ac27878-a6fa-4155-ba85-f98f491d4f33}\SID-{20002,SECZ9519043CHOHB01,31806128128}\{6ED5D817-A004-6636-FDB2-020116263E14}
    のような形式で返ってきます。
    このパスは、たまたま255文字以下の230文字程度ですので取得できましたが、
    他の実際に取得したいAndroid上のパスは、ほぼ255文字を超えるため、BrowseForFolderダイアログでフォルダーを選択した段階で、選択できないというエラーになってしまいます。
    この255文字の制限取っ払って、Android上のフォルダパスを取得する手法はございますでしょうか?
    海外サイト等、検索しまくっていますが、今のところお手上げです。
    よろしくお願いいたします。


    2018年4月4日 11:37

すべての返信