Проверка прав доступа к папке (диску). - C#

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Проверка прав доступа к папке (диску).»

textual
Листинг программы
  1.         [DllImport("kernel32.dll", SetLastError = true)]
  2.         static extern IntPtr CreateFile(
  3.               string lpFileName,
  4.               uint dwDesiredAccess,
  5.               uint dwShareMode,
  6.               IntPtr lpSecurityAttributes,
  7.               uint dwCreationDisposition,
  8.               uint dwFlagsAndAttributes,
  9.               IntPtr hTemplateFile
  10.             );
  11.  
  12.         [DllImport("kernel32.dll")]
  13.         static extern int GetLastError();
  14.  
  15.         [DllImport("kernel32.dll", SetLastError = true)]
  16.         [return: MarshalAs(UnmanagedType.Bool)]
  17.         static extern bool CloseHandle(IntPtr hObject);
  18.  
  19.         /// <summary>
  20.         /// Метод проверяет возможность создания файла в папке.
  21.         /// </summary>
  22.         /// <param name="folder">Путь к папке.</param>
  23.         /// <returns>Возвращает true, если файл можно создать, иначе false.</returns>
  24.         static bool CanCreateFile(string folder)
  25.         {
  26.             if (!folder.EndsWith("\\"))
  27.                 folder += "\\";
  28.  
  29.             folder += Path.GetRandomFileName();
  30.             bool flag = true;
  31.  
  32.             IntPtr hFile = CreateFile(folder, 0x40000000U, 0x1U, IntPtr.Zero, 0x1U, 0x80 | 0x4000000U, IntPtr.Zero);
  33.             if (hFile == (IntPtr)(-1) && GetLastError() != 0) {
  34.                 flag = false;
  35.             }
  36.  
  37.             CloseHandle(hFile);
  38.             return flag;
  39.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы