QFileDialog :: getSaveFileName сохранения файла в папку на диск

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2023

Есть затруднения с функцией QFileDialog::getSaveFileName. Данная функция должна окрывать диалоговое окно для выбора и сохранения файла в определенную папку.

QString fileName = QFileDialog::getSaveFileName(this,
    tr("Open Address book"), "",
    tr("Address book (*.*);;All Files (*)"));

Данный фрагмент открывает данную папку для сохранения в нее выбранного файла.

Как выбрать и сохранить файл?

Есть поле lineEdit, где отображается путь выбранного файла для сохранения.

Ответы

▲ 0

После получения пути для сохранения с помощью QFileDialog::getSaveFileName необходимо самостоятельно создать/сохранить конечный файл, например, с помощью QFile. Пример копирования файла по заданному пути:

QString fileName = QFileDialog::getSaveFileName(this,
                                   tr("Open Address book"), "",
                                   tr("Address book (*.*);;All Files (*)"));
QString oldFile = lineEdit->text(); //Получаем путь старого файла
if (QFile::exists(oldFile)) {//Если старый файл существует
    QFile::remove(fileName); //Удаляем файл по пути назначения
                             //(Если он существует копирование не произойдёт)
    bool result = QFile::copy(oldFile, fileName); //Копируем старый файл по новому пути
    if (result) { 
        //Если result==true файл успешно скопирован
    }
}