Ответ 1
file.setPermissions(QFile::ReadOther | QFile::WriteOther);
file.remove();
должен работать.
Я установил файл только для чтения (щелкните правой кнопкой мыши и проверьте только на чтение). Теперь, когда я пытаюсь удалить файл с помощью функции bool QDir::remove(const QString & fileName)
, файл не удаляется и возвращается false
.
Как я могу продолжить это? Я попытался возиться, изменив разрешение файла с помощью QFile::setPermission
, но также возвращает false
.
Может ли кто-нибудь посоветовать подход к тому же?
file.setPermissions(QFile::ReadOther | QFile::WriteOther);
file.remove();
должен работать.
Вы можете установить права доступа к файлам с помощью QFile
Конечно, это только для файлов, на которые у вас есть разрешение пользователя. Ошибка также может быть связана с тем, что файл открыт в другом приложении
Сначала вы проверили QFile:: error(), чтобы узнать, почему файл не был удален?
Во-вторых, в случае, если вы все еще не получите полезное сообщение об ошибке, вы можете проверить источник, чтобы узнать, можете ли вы получить дополнительную информацию. Проверка источника показывает следующее, например:
QFile:: remove() использует основной файловый движок для удаления. Этот файловый движок является специфичным для платформы и qfsfileengine_win.cpp для окон. Строка 830 показывает, что с помощью DeleteFile сделать удаление, чтобы вы могли получить дополнительную информацию, вызвав GetLastError, хотя я надеюсь, что Qt соответствующим образом переведет сообщение об ошибке.
Функция QDir:: remove() не является статической функцией. поэтому вы можете создать QDir с родительским файловым путем и вызвать и удалить его:
QDir dir (родительский каталог);
а затем
dir.remove(имя_файла);
Я думаю, вы должны использовать это:
bool QFile::remove ( const QString & fileName ) [static]
вместо этого:
QDir::remove ( const QString & fileName )
Вы пытались использовать bool QFile:: remove (const QString & имя_файла)?