Как Qt научить понимать пробелы в путях к файлу?

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

Вот немного моего кода:

void MainWindow::on_pushButtonSave_clicked()
{
    QString filename = QFileDialog::getSaveFileName(this,
                                                    tr("Save Document"),
                                                    QDir::currentPath(),
                                                    tr("Document files (*.doc *.rtf);;All files (*.*)") );

    //QMessageBox q;
    //q.setText(filename);
    //q.exec();

    string path = filename.toUtf8().constData();
    QString s = ui->order->toPlainText();
    s += "_______\n";
    s += ui->lineEditAll->text();
    string text = s.toStdString();

    ofstream fout(path.c_str());
    fout << text.c_str();
    fout.close();

}

Но сохраняет мой файл только в те директории, где нет пробелов в пути.

Ответы

▲ 1

Надо было найденные слеши ("/") заменить на ("\\")

▲ 1

На всех платформах в Qt используются только пути с прямым слешом (/). Лучше всего для записи в файл тоже использовать Qt (QFile). Если же требуется использовать нативные средства для операций с файлом, то перед передачей в пути к файлу нужно заменить слеши на те, которые используются в данной ОС:

string path = QDir::toNativeSeparators(filename).toStdString();