トップ回答者
UWPアプリからNASのようなファイルサーバーから画像ファイルにアクセスしたい

質問
-
NASなどのファイルサーバーにすでにある画像ファイル群をプログラミングのみ(UI非経由)で取得するプログラムを組んで、
アクセスしたいのですが、アクセスした際に権限がない旨のExceptionが発生します。
FilePickerで取得したStorageFileをStorageApplicationPermissions.FutureAccessListにAddすることで以降、await StorageFolder.GetFolderFromPathAsync([filepath])の記述でアクセスできることはわかっています。
以下の類似投稿のいずれを試しても解決しませんでした。
・ネットワークドライブに割り当てたられたフォルダを、FolderPickerを使わず、自動的に開くようにしたい
・privateNetworkClientServer をマニフェストで宣言してもUNCパス名でネットワークアクセスできない
回避策をご存知の方がいれば教えていただけたらと思います。
回答
-
こんにちは。
以下によると、汎用名前付け規則 (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- 回答としてマーク daiki minamoto 2016年7月8日 6:41
-
ストアアプリの基本コンセプトとして、セキュリティ上の理由から、ファイルを開くときはユーザーアクションを必要とします。
プログラム上から自動でっていうのであれば、無理だと思います。
documentsLibraryあたりを宣言していれば可能かもしれませんが、公開できるプログラムには使用できません。
(ご自分の家、会社の中で使う分には使えます。)- 回答としてマーク daiki minamoto 2016年7月8日 6:41
すべての返信
-
こんにちは。
以下によると、汎用名前付け規則 (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- 回答としてマーク daiki minamoto 2016年7月8日 6:41
-
ストアアプリの基本コンセプトとして、セキュリティ上の理由から、ファイルを開くときはユーザーアクションを必要とします。
プログラム上から自動でっていうのであれば、無理だと思います。
documentsLibraryあたりを宣言していれば可能かもしれませんが、公開できるプログラムには使用できません。
(ご自分の家、会社の中で使う分には使えます。)- 回答としてマーク daiki minamoto 2016年7月8日 6:41
-
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>