В моей программе пользователи могут выбрать каталог для сохранения своих файлов или для изменения некоторых файлов в определенном каталоге. Программа должна выдавать предупреждение, если у пользователей нет прав на создание нового файла или изменение файла.
Но я понятия не имею, как реализовать эту функцию, кроме как создать тестовый файл. Если функция QFile::open(...) возвращает значение true, я понимаю, что текущий пользователь имеет доступ для записи.
Есть ли лучшая идея сделать это?
Ответ 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 ();