Qt С++ удаляет файл только для чтения в окнах, используя

Я установил файл только для чтения (щелкните правой кнопкой мыши и проверьте только на чтение). Теперь, когда я пытаюсь удалить файл с помощью функции bool QDir::remove(const QString & fileName), файл не удаляется и возвращается false.
Как я могу продолжить это? Я попытался возиться, изменив разрешение файла с помощью QFile::setPermission, но также возвращает false.
Может ли кто-нибудь посоветовать подход к тому же?

Ответы

Ответ 1

file.setPermissions(QFile::ReadOther | QFile::WriteOther);
file.remove();

должен работать.

Ответ 2

Вы можете установить права доступа к файлам с помощью QFile

Конечно, это только для файлов, на которые у вас есть разрешение пользователя. Ошибка также может быть связана с тем, что файл открыт в другом приложении

Ответ 3

Сначала вы проверили QFile:: error(), чтобы узнать, почему файл не был удален?

Во-вторых, в случае, если вы все еще не получите полезное сообщение об ошибке, вы можете проверить источник, чтобы узнать, можете ли вы получить дополнительную информацию. Проверка источника показывает следующее, например:

QFile:: remove() использует основной файловый движок для удаления. Этот файловый движок является специфичным для платформы и qfsfileengine_win.cpp для окон. Строка 830 показывает, что с помощью DeleteFile сделать удаление, чтобы вы могли получить дополнительную информацию, вызвав GetLastError, хотя я надеюсь, что Qt соответствующим образом переведет сообщение об ошибке.

Ответ 4

Функция QDir:: remove() не является статической функцией. поэтому вы можете создать QDir с родительским файловым путем и вызвать и удалить его:

QDir dir (родительский каталог);

а затем

dir.remove(имя_файла);

Ответ 5

Я думаю, вы должны использовать это:

bool QFile::remove ( const QString & fileName ) [static]

вместо этого:

QDir::remove ( const QString & fileName ) 

Ответ 6

Вы пытались использовать bool QFile:: remove (const QString & имя_файла)?