Как получить разрешение на доступ для проверки существования сетевого пути - PullRequest
0 голосов
/ 25 июня 2018

У меня есть небольшая программа для настройки другой программы.используя эту программу, он сохраняет данные сервера репозитория (путь к репозиторию, имя пользователя и пароль).Путь к репозиторию - это всегда сетевой путь.поэтому я проверяю этот путь, используя этот кусок кода.Directory.Exists(txtRepositaryPath.Text)

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

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете добавить файл app.config , чтобы получить разрешение от пользователя до запуска вашей программы, чтобы приложение работало в режиме администратора и получало доступ к авторизованным папкам.

Пример

Чтение это для добавления файла конфигурации приложения и, таким образом, вы видите разрешение для программы и заменяете запрошенные привилегии

<requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>

. Вы можетепроверить, доступен ли каталог или нет, используя

  private bool hasWriteAccessToFolder(string folderPath)
  {
   try
   {
    // Attempt to get a list of security permissions from the folder. 
    // This will raise an exception if the path is read only or do not have access to view the permissions. 
    System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
       return true;
   }
    catch (UnauthorizedAccessException)
    {
       return false;
    }
 }
...