Проверка прав доступа к папке (диску). - C#
Формулировка задачи:
Меня интересует такой вопрос, как можно проверить возможно ли создать файл в папке. Можно конечно попробовать создать файл и в случае ошибки, мы узнаем можно или нет. Но хотелось бы без создания файла это сделать...Заранее спс....
Решение задачи: «Проверка прав доступа к папке (диску).»
textual
Листинг программы
- [DllImport("kernel32.dll", SetLastError = true)]
- static extern IntPtr CreateFile(
- string lpFileName,
- uint dwDesiredAccess,
- uint dwShareMode,
- IntPtr lpSecurityAttributes,
- uint dwCreationDisposition,
- uint dwFlagsAndAttributes,
- IntPtr hTemplateFile
- );
- [DllImport("kernel32.dll")]
- static extern int GetLastError();
- [DllImport("kernel32.dll", SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- static extern bool CloseHandle(IntPtr hObject);
- /// <summary>
- /// Метод проверяет возможность создания файла в папке.
- /// </summary>
- /// <param name="folder">Путь к папке.</param>
- /// <returns>Возвращает true, если файл можно создать, иначе false.</returns>
- static bool CanCreateFile(string folder)
- {
- if (!folder.EndsWith("\\"))
- folder += "\\";
- folder += Path.GetRandomFileName();
- bool flag = true;
- IntPtr hFile = CreateFile(folder, 0x40000000U, 0x1U, IntPtr.Zero, 0x1U, 0x80 | 0x4000000U, IntPtr.Zero);
- if (hFile == (IntPtr)(-1) && GetLastError() != 0) {
- flag = false;
- }
- CloseHandle(hFile);
- return flag;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д