none
UWPアプリからNASのようなファイルサーバーから画像ファイルにアクセスしたい RRS feed

  • 質問

  • NASなどのファイルサーバーにすでにある画像ファイル群をプログラミングのみ(UI非経由)で取得するプログラムを組んで、

    アクセスしたいのですが、アクセスした際に権限がない旨のExceptionが発生します。

    FilePickerで取得したStorageFileをStorageApplicationPermissions.FutureAccessListにAddすることで以降、await StorageFolder.GetFolderFromPathAsync([filepath])の記述でアクセスできることはわかっています。

    以下の類似投稿のいずれを試しても解決しませんでした。

    ・ネットワークドライブに割り当てたられたフォルダを、FolderPickerを使わず、自動的に開くようにしたい

    ・privateNetworkClientServer をマニフェストで宣言してもUNCパス名でネットワークアクセスできない

    回避策をご存知の方がいれば教えていただけたらと思います。

    2016年6月30日 7:06

回答

  • こんにちは。

    以下によると、汎用名前付け規則 (UNC) フォルダーとしてアクセスできそうなのですが。
    https://msdn.microsoft.com/ja-jp/windows/uwp/files/file-access-permissions

    ストアアプリ時代のスレッドですが、まずは以下を確認してみては如何でしょうか。
    https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2f31c8c4-1ceb-4d5e-acf6-5c804c86876a/privatenetworkclientserver-unc?forum=winstoreapp

    2016年6月30日 7:25
    モデレータ
  • ストアアプリの基本コンセプトとして、セキュリティ上の理由から、ファイルを開くときはユーザーアクションを必要とします。
    プログラム上から自動でっていうのであれば、無理だと思います。
    documentsLibraryあたりを宣言していれば可能かもしれませんが、公開できるプログラムには使用できません。
    (ご自分の家、会社の中で使う分には使えます。)

    2016年7月5日 1:38

すべての返信

  • こんにちは。

    以下によると、汎用名前付け規則 (UNC) フォルダーとしてアクセスできそうなのですが。
    https://msdn.microsoft.com/ja-jp/windows/uwp/files/file-access-permissions

    ストアアプリ時代のスレッドですが、まずは以下を確認してみては如何でしょうか。
    https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2f31c8c4-1ceb-4d5e-acf6-5c804c86876a/privatenetworkclientserver-unc?forum=winstoreapp

    2016年6月30日 7:25
    モデレータ
  • ストアアプリの基本コンセプトとして、セキュリティ上の理由から、ファイルを開くときはユーザーアクションを必要とします。
    プログラム上から自動でっていうのであれば、無理だと思います。
    documentsLibraryあたりを宣言していれば可能かもしれませんが、公開できるプログラムには使用できません。
    (ご自分の家、会社の中で使う分には使えます。)

    2016年7月5日 1:38
  • Tak1waさん、USS-Voyagerさん返信ありがとうございました。

    現状、やはりユーザーアクションは必要そうだということでルートフォルダに相当する場所をFolderPickerで選択してもらうような運用をしようと思います。

    フォルダを選択したあとは、そのフォルダ以下に含まれるファイルにプログラミングのみでアクセス可能なところまでは確認できました。

    具体的には、

    ・ 選択したフォルダ情報をStorageApplicationPermissions.FutureAccessListに追加

    ・ Package.appxmanifestに許可するファイルの拡張子を記述する

    例)

    <Applications>
        <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="xxx.App">
          <Extensions>
            <uap:Extension Category="windows.fileTypeAssociation">
              <uap:FileTypeAssociation Name="filetypeassociation">
                <uap:SupportedFileTypes>
                  <uap:FileType>.png</uap:FileType>
                  <uap:FileType>.jpg</uap:FileType>
                  <uap:FileType>.txt</uap:FileType>
                </uap:SupportedFileTypes>
              </uap:FileTypeAssociation>
            </uap:Extension>
          </Extensions>
        </Application>
      </Applications>

    2016年7月8日 6:58