Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как получить информацию о разрешении на создание нового файла или изменение определенного файла в определенной директории?

Автор вопроса: user850062Ответов: 1

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

Но я понятия не имею, как реализовать эту функцию, кроме как создать тестовый файл. Если функция QFile::open(...) возвращает значение true, я понимаю, что текущий пользователь имеет доступ для записи.

Есть ли лучшая идея сделать это?

permissionsqt

Ответы

Ответ 1 · рейтинг 1 · Raiv

Используйте класс QFileSystemModel, у него есть метод

QFile::Permissions QFileSystemModel::permissions ( const QModelIndex & index ) const

Запросите разрешения для каталога, в котором вы хотите создавать файлы.

Кроме того, есть некоторые хитрости с разрешениями для Windows - загляните в docs - они должны быть явно включены в вашем приложении, и

QFile::ReadOwner
QFile::WriteOwner
QFile::ExeOwner

соответствует текущему пользователю

UPD - есть способ проще - просто пользуйтесь

QString dirName=<your dir>;
QFileInfo f(dirName);
f.permissions ();

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы