File.CreateText上的UnauthorizedAccessException

时间:2016-11-07 17:12:04

标签: c# android writing

我再次调用SO的力量!

对此代码有例外:

        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"而不是当前路径,导致相同的错误。

诀窍是这个代码在另一个解决方案中工作。所以问题必须来自我的设置。哪一个可能是问题的根源?

1 个答案:

答案 0 :(得分:0)

Aaaaaa这里是答案:

代码很好,这是一个权限问题。我的测试代码在Android Lollypop下,但后来我在Android Marshmallow下使用了这个代码,在工作应用程序中。

在Marshmallow上,您需要在运行时明确指定一些重要权限,例如BLUETOOTHBLUETOOTH_ADMIN ....或WRITE_EXTERNAL_STORAGE

以下是OnCreate中添加的行:

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

您可以通过回调OnRequestPermissionResult了解用户是否接受了该权限。

以下是android dev的相关文章:

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