2016-06-10 12 views
2

При разработке кода Labview для операционной системы Windows 7 стало очевидно, что система, в которой используется программное обеспечение, может быть настроена так, чтобы не допускать обычного доступа к записи в выбранную папку. Если выбранная папка не имеет разрешения на запись, код должен запрашивать у пользователя выбор другой папки.В Labview 2012, ОС Windows 7, как можно разрешить право на запись пользователя?

До сих пор у меня Labview 2012 и был найден блок «Разрешить доступ» в расширенных функциях файла. Это лучший способ определить, имеет ли пользователь разрешение на запись? Существует ли лучший способ проверить разрешение на запись?

ответ

2

Получить разрешения не возвращает точных результатов в Windows.

Я только что попробовал его в некоторых подпапках C:\Users на моей машине с Windows 7, и он возвращает 111111111 (двоичный) для всех пользовательских папок, что указывает на то, что у меня должен быть полный доступ для чтения и записи - даже если Windows на самом деле не позволит мне пишите в любую папку пользователя, кроме моей.

Тем временем C:\Users\Public возвращается 101101101, не подразумевая, нет доступа на запись, но я могу запись в эту папку.

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

+0

Это странное поведение - именно то, что мне было интересно. – Agriculturist

+0

Спасибо, что указали это @nekomatic. Я только что обновил свой пост. По-видимому, эта проблема не только для пользователей Labview: http://stackoverflow.com/questions/1281620/checking-for-directory-and-file-write-permissions-in-net – MarcoM

+0

@MarcoM - это хорошая ссылка, хотя бы для что это сложно - вы должны отредактировать это в свой ответ! – nekomatic

3

Некоторые люди просто пытаются создать фиктивный файл, обрабатывая ошибку и уведомляя ее об этом, если это так (и удаляет фиктивный файл, если создание выполнено успешно).

Обратите внимание, что это не проблема, связанная с Labview: посмотреть here on Stackoverflow и на thread I've just started on NI Labview Forum.