2016-11-07 13 views
1

私は別の時間の力を呼び出す!UnauthorizedAccessException on File.CreateText

は、このコードで例外が発生しました:

 string filePath = "/sdcard/Download/test.txt"; 

     using (StreamWriter stream = File.CreateText(filePath)) 
     { 
      //stuff that is currently never done 
     } 

"File.CreateTextは、" 実行時に次のエラーを生成します。

UnauthorizedAccessException 

私は私のAndroidManifestをチェックして "WRITE_EXTERNAL_STORAGE" と "READ_EXTERNAL_STORAGEを"指定されています。

また、この現在のパスの代わりに "Environment.ExternalStorageDirectory"を使用しようとしましたが、同じエラーが発生します。

このコードが別の解決策で機能したということがあります。だから問題は私の設定から来なければならない。どちらが問題の原点になるか?

答えて

0

ここAaaaaaandが答えです:コードは大丈夫だった

、それはアクセス許可の問題でした。私のテストコードはAndroid Lollypopの下にありましたが、私はAndroid Marshmallowの下でこのコードを使っていました。

マシュマロでは、実行時に重要な権限を明示的に指定する必要があります(BLUETOOTH,BLUETOOTH_ADMIN ....またはWRITE_EXTERNAL_STORAGEなど)。ここで

OnCreateに追加する線です:

 string[] Permissions = { Android.Manifest.Permission.WriteExternalStorage }; 
     int RequestLocationId = 0; 
     RequestPermissions(Permissions, RequestLocationId); 

ユーザーがコールバックOnRequestPermissionResultとの許可を受け入れたかどうかを知ることができます。ここで

は、Androidデベロッパーより関連記事です:

https://developer.android.com/training/permissions/requesting.html

関連する問題