Проблема при создании QFile внутри местоположения, отличного от текущего каталога - PullRequest
1 голос
/ 12 марта 2011

Я использую Qt 4.7, установленный в Ubuntu 10.04 .... Я не могу создать файл qt внутри местоположения, отличного от текущего каталога "."

Этот код хорошо работает:

QFile file("data.txt");
if (!file.open(QIODevice::Append))
{
    qDebug("ERROR WHILE OPENING THE FILE TO APPEND Data");
    return ;
}

но этот код не работает (я думаю из-за разрешений):

QFile file("/var/lib/mysql/testdb/data.txt");
if (!file.open(QIODevice::Append))
{
    qDebug("ERROR WHILE OPENING THE FILE TO APPEND Data");
    return ;
}

Итак, как я могу решить эту проблему и дать программе разрешения на создание файла в файловой системе?

1 Ответ

2 голосов
/ 12 марта 2011

Вы решаете это быстро одним из следующих способов:

  • Запуск от имени пользователя root (это большое нет-нет)
  • В качестве пользователя root измените права доступа к нужному каталогу, chmod /the/dir o+rwx - это позволит каждому писать в каталог.
  • В качестве пользователя root измените владельца нужного каталога, chown myuser /the/dir - это позволит вашему пользователю выполнять запись в каталог.

Вы решаете это правильно , придерживаясь каталогов, к которым у вашего текущего пользователя есть доступ - разрешения есть по причине.

...