2017-10-02 15 views
-1

C#/ VSの新機能で、ファイルのリストを取得しようとしていますが、これは簡単な答えがあると感じます。基本的にはファイルにアクセスしようとしたときにUnauthorizedAccessExceptionが発生する

、ファイルの一覧を取得したいが、様々な方法を試してみましたが、簡単にするために、なぜ

var f = Directory.GetFiles(@"C:\"); 

戻り

System.UnauthorizedAccessExceptionん:「パスへのアクセス 'C:\' を が拒否されました。

管理者としてVSを実行しようとしましたが、サブフォルダで試してみました。フルコントロール権限を持つEveryoneを持つサブフォルダで試してみました。同じ結果。あなたのUWPアプリから任意のフォルダにアクセスするためには、ユーザーが最初にFolderPickerダイアログを経由して同意を提供する必要があります

+1

UACがあなたをブロックしている必要があります。それをオフにして、それがあなたのWindows 10でない限り動作するはずです.Windows 10では、UACオフやローカル管理者アカウントでもcドライブにアクセスできません。デスクトップからCドライブにテキストファイルをコピーしても、許可を求められます。それでも私の文書を使用する以外には、この問題を回避するための作業が見つかりませんでした。 – Franck

+0

@ Jean-Claude Coletteは、「プロセスが失敗しました」と同じエラーを出力するだけではありませんか? – TheSkimek

+0

私はWindows10を使用しています。それはプラットフォームの限界なのですか?極端な制限のようだ。 – wikios

答えて

0

System.UnauthorizedAccessException:「へのアクセスパス 'C:\'は拒否されました。

ロブは、Windowsストアのアプリがsandboxedを実行して、彼のblog内のファイルシステムに非常に限られたアクセス権を持っていると述べています。他の場所へのアクセスは、broker processを介してのみ利用できます。このブローカプロセスは、ユーザーの完全な権限で実行されます。 これで、Stefan Wickが言及したフォルダにフルアクセス権FolderPickerでアクセスできました。

デフォルトでは、アプリケーションは特定のファイルシステムの場所にアクセスできます。アプリは、機能を宣言することによって追加の場所にアクセスすることもできます。

すべてのアプリがアクセスできる場所がいくつかあります。 InstalledLocationLocalFolderなどです。

StorageFolder localFolder = ApplicationData.Current.LocalFolder; 

デフォルトの場所に加えて、アプリケーションは、アプリケーションマニフェストの機能を宣言することによって、追加のファイルとフォルダにアクセスできます。例えば、PicturesMusicライブラリー。

<Capabilities><uap:Capability Name="musicLibrary"/></Capabilities> 

<Capabilities><uap:Capability Name="picturesLibrary"/></Capabilities> 

詳細については、を参照してください。 Skip the path: stick to the StorageFileは、uwpファイルへのアクセスを深く理解するのに役立ちます。

関連する問題