none
サブフォルダの名称によって、サブフォルダが取得できない RRS feed

  • 質問

  • StorageFolderと文字列を指定し、そのフォルダのサブフォルダを作成or取得するルーチン

    //指定したフォルダのサブフォルダを示すStorageFolderを取得。サブフォルダが存在しない場合は作成。
                public static async Task<StorageFolder> SubFolder(StorageFolder folder, string subfoldername)
                {
                    StorageFolder kekka;
    
                    //サブフォルダを作成
                     IStorageItem abc = await folder.TryGetItemAsync(subfoldername);
                    if (abc == null)
                    {
                        kekka = await folder.CreateFolderAsync(subfoldername);
                    }
                    else
                    {
                        kekka = await folder.GetFolderAsync(subfoldername);
                    }
    
                    return kekka;
                }

    このルーチンの引数のフォルダに同じフォルダ(存在する)を指定し、サブフォルダにサブフォルダ名の文字列を指定すると、そのサブフォルダがいずれも存在するにもかかわらず、文字列によって、正しく取得できることとできないことがあります。

    文字列がEIYO→取得できた、文字列がDISH→取得できなかった

    このルーチン全体にエラートラップをかけましたが、引っかからず、App.g.i.csに飛び、eに「Object reference not set to an instance of an object.」というメッセージがでます。

    2021年2月24日 23:48

すべての返信

  • 文字列がEIYO→取得できた、文字列がDISH→取得できなかった

    DISH だと取得できなかったとのことですが
    DISH の場合も取得できないのでしょうか。

    EIYO だと取得できたとのことですが、
    EIYO だと取得できなくなってしまうのでしょうか。

    2021年2月25日 1:57
  • 文字列(引数のsubfoldernameに代入する文字列)が、

    EIYOだと取得でき、DISHだと取得できない、という状態です。

    2021年2月25日 4:03
  • デスクトップアプリから呼び出した限りでは、EIYOだろうとDISHだろうと問題なく取得も作成もでき、StorageFolderが返されました。

    とりあえずデバッガでステップ実行して、処理の流れ、引数と返値、などの何が想定と異なっているのか確認されてみてはいかがでしょうか。

    2021年2月25日 4:22
  • 「DISH」を取得できないというのが最初の投稿で
    「DISH」も取得できないというのが二回目の投稿ですね。

    該当フォルダーの直下には、"EIYO", "DISH”, "DISH" の 3 つのフォルダーが同時にある状態で、そのうちの "EIYO" にはアクセスできたものの、"DISH” と "DISH" にはアクセスできない状況という認識でよろしいでしょうか。それとも、サブフォルダーを新規作成する場合のみの事象でしょうか。

    アクセス権に問題が無いようであれば、他者が検証できるよう、実行環境の OS バージョンも教えてください。可能であれば、該当パスのファイルシステムも分かるとなお良いです。

    また、全角半角の違いだけではなく、大文字小文字の違いも確認しておいてください。

    Windows 系のファイルシステムでは基本的に、大文字小文字が区別されないため、"DISH" フォルダーに対して "dish" というパスでもアクセスできるようになっています。一方、"DISH" フォルダーに対して "dish" というパスでアクセスした時は上記と異なり、同一視される環境と区別される環境がありえます。最近の環境では同一視されることが多いでしょうね。

    2021年2月25日 5:50
  • ナノレスさん、こんにちは。フォーラムオペレーターのKumoです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問いただいた件ですが、その後のご状況いかがでしょうか。 
    皆様から寄せられた投稿はお試しになりましたか。


    どうぞよろしくお願いいたします。 

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2021年3月1日 6:25
    モデレータ