Место для проверки прав на запись - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь записать файл в

Environment.GetFolderPath(Environment.SpecialFolder.Personal)

Я получаю следующую ошибку при попытке сделать это:

System.UnauthorizedAccessException: Access to the path is denied

Я подозреваю, что у меня есть более общая проблема.

Для отладки того, что может быть не так, я хотел бы попробовать записать в отказоустойчивый каталог (где мне не нужны никакие разрешения).

Может кто-нибудь сказать мне, какой каталог я мог бы выбрать для этого?

Если это тоже не сработает, я знаю, что у меня есть более общая проблема. Если это работает, вероятно, это проблема с разрешениями.

Спасибо.

1 Ответ

0 голосов
/ 26 апреля 2018

может быть, эта помощь

Xamarin-System.UnauthorizedAccessException: доступ к пути запрещен

В зависимости от используемой версии Android, даже с добавленными разрешениямив манифесте 6.0 или более поздней версии пользователь должен явно включить разрешение при запуске приложения, а в более низких версиях запрашивается разрешение во время установки.Например, при запуске приложения я создал метод, чтобы проверить, включено ли оно, и запросить разрешение, если это не так.

 private void CheckAppPermissions()
{
  if ((int)Build.VERSION.SdkInt < 23)
  {
    return;
  }
  else
  {
    if (PackageManager.CheckPermission(Manifest.Permission.ReadExternalStorage, PackageName) != Permission.Granted
        && PackageManager.CheckPermission(Manifest.Permission.WriteExternalStorage, PackageName) != Permission.Granted)
    {
        var permissions = new string[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage };
        RequestPermissions(permissions, 1);
    }
 }
}

Вы также можете использовать библиотеку поддержки, чтобы сделать это, что проще и позволяетВам не нужно проверять версию Android.Для получения дополнительной информации ознакомьтесь с документацией Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...