Как проверить, доступен ли каталог для записи в win32 C / winapi? - PullRequest
0 голосов
/ 28 мая 2009

Я знаю два метода, которые не являются надежными:

  • _access () - не работает с каталогами (только проверяет существование)
  • CreateFile () - выдает ложные срабатывания при наличии виртуального хранилища (AFAIK)

Самым полезным будет пример кода, потому что функции доступа к ACL win32 чрезвычайно сложны. Пожалуйста, не публикуйте ссылки на MSDN, я был там и не могу до конца понять, что я должен делать со всеми этими DACL, SACL и дескрипторами безопасности - я работаю над кроссплатформенным приложением который нуждается в этом конкретном элементе функциональности, но в остальном не зависит от платформы. Решения проще, чем доступ к спискам управления доступом Windows, более чем приветствуются.

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

Ответы [ 2 ]

5 голосов
/ 29 мая 2009

вы можете отключить виртуализацию местоположения для вашего приложения в файле манифеста (http://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/article.php/c15455/) - это должно сделать CreateFile достаточно надежным для ваших целей.

1 голос
/ 28 мая 2009

В любой операционной системе нет надежного метода, поскольку разрешения можно изменять между их тестированием и записью файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...