Почему доступ к пути запрещен? - PullRequest
135 голосов
/ 11 января 2012

У меня проблема с тем, что я пытаюсь удалить свой файл, но получаю исключение.

if (result == "Success")
{
     if (FileUpload.HasFile)
     {
         try
         {
              File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text);
              string filename = Path.GetFileName(btnFileUpload.FileName);
              btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename);
         }
         catch (Exception ex)
         {
               Message(ex.ToString());
         }
      }
}

Также я должен отметить, что папка, из которой я пытаюсь удалить, имеет полный доступ к сетевым службам.

Полное сообщение об исключении:

System.UnauthorizedAccessException: доступ к пути 'C: \ Users \ gowdyn \ Documents \ Visual Studio 2008 \ Projects \ hybrid \ hybrid \ \temp_loginimages \ enviromental.jpg 'запрещено.в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath) в System.IO.File.Delete (String path) в гибридномДокументы \ Visual Studio 2008 \ Проекты \ hybrid \ hybrid \ User_Controls \ Imgloader_Add_Edit_Tbl.ascx.cs: строка 242

Есть идеи?

Ответы [ 26 ]

2 голосов
/ 21 июня 2016

Я получил эту ошибку и решил ее за мгновение. Не знаю, почему все мои папки доступны только для чтения , Я отменил доступ только для чтения и применил его. Тем не менее, это все еще только для чтения. Поэтому я переместил файл в корневую папку, он работает - так странно.

2 голосов
/ 19 июня 2018

Исключение UnauthorizedAccessException выдается, когда операционная система отказывает в доступе из-за ошибки ввода-вывода или ошибки безопасности.

Если вы пытаетесь получить доступ к файлу или разделу реестра, убедитесь, что это не только для чтения .

1 голос
/ 19 июля 2013

У меня была такая же проблема на недавно перемещенном веб-сайте на общем сервере.Решено с помощью панели веб-хостинга (DotNetPanel) установить true «разрешить запись».Поэтому, если вы находитесь на общем сервере, прежде чем просматривать весь код, стоит взглянуть на конфигурацию сервера и сэкономить много времени.

1 голос
/ 23 июля 2013

Имейте в виду, что если вы пытаетесь найти путь к общей папке из своего кода, вам не нужно только давать надлежащие разрешения физической папке через вкладку безопасности.Вам также необходимо «поделиться» папкой с соответствующим пользователем пула приложений через вкладку «Поделиться»

1 голос
/ 03 июля 2014

Проверьте свойства ваших файлов. Если проверен только для чтения, снимите флажок. Это была моя личная проблема с UnauthorizedAccessException.

1 голос
/ 02 августа 2018

Я также столкнулся с этой проблемой, когда моя оконная служба начала выдавать исключение

System.UnauthorizedAccessException: Access to the path "C:\\Order\\Media
44aa4857-3bac-4a18-a307-820450361662.mp4" is denied.

В качестве решения я проверил учетную запись пользователя, связанную с моей службой, как показано на снимке экрана ниже

enter image description here

Так что в моем случае это был СЕТЬ СЕРВИС

А затем перешел в свойства папки , чтобы проверить, существует ли связанная учетная запись пользователя на вкладке их прав доступа. В моем случае его не было, и когда я его добавил, это исправило мою проблему.

Для получения дополнительной информации, пожалуйста, проверьте снимок экрана ниже

enter image description here

1 голос
/ 01 августа 2018

У меня была точная ошибка при удалении файла. Это была служба Windows, работающая под учетной записью службы, которая не смогла удалить документ .pdf из общей папки, хотя у нее был полный контроль над папкой.

Что мне помогло, так это переход на вкладку «Безопасность» в общей папке> «Дополнительно»> «Поделиться»> «Добавить».

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

1 голос
/ 21 июня 2016

Я столкнулся с этой ошибкой, потому что

Иногда, когда я Combine путь с Имя файла и FileName = ""

Он становится Path Directory, а не file, что является проблемой, как и , упомянутый выше

так что вы должны проверить FileName как это

if(itemUri!="")
        File.Delete(Path.Combine(RemoteDirectoryPath, itemUri));
0 голосов
/ 05 февраля 2019

Если вы используете BitDefender, есть большая вероятность, что функция Безопасные файлы заблокировала вашу работу.Это форма защиты от вымогателей, которая поставляется с некоторыми из более продвинутых версий.

Обязательно предоставьте доступ к вашему приложению в BitDefender и повторите попытку.

Некоторые подробности можно найти в эта страница поддержки BitDefender .

0 голосов
/ 31 января 2019

Для тех, кто пытается создать приложение UWP (Universal Windows), права доступа к файлам гораздо более ограничены и, по умолчанию, вообще запрещены. Он также заменяет разрешения пользователя системы. В основном вы будете иметь доступ только к файлам в

  • Место установки
  • Ваше местоположение с данными приложения
  • Файлы, выбранные с помощью Файл или Папка Средство выбора
  • Места, запрошенные в вашем манифесте приложения

Подробнее читайте здесь => https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions

...