Проверка прав доступа к папке (диску). - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д