Russian Qt Forum

Qt => Общие вопросы => Тема начата: 100 and 80 от Декабрь 26, 2014, 13:28



Название: Имя файла содержащее кавычки
Отправлено: 100 and 80 от Декабрь 26, 2014, 13:28
Через QFileDialog::getSaveFileName пытаюсь получить адрес файла для записи, по умолчанию устанавливаю имя допустим aaaa"bbbb".txt - отображается нормально, нажимаю сохранить получаю bbbb, только то что в кавычках. Как получить имя файла корректно?


Название: Re: Имя файла содержащее кавычки
Отправлено: gil9red от Декабрь 26, 2014, 13:35
Код, в котором вы getSaveFileName используйте, в студию :)


Название: Re: Имя файла содержащее кавычки
Отправлено: Bepec от Декабрь 26, 2014, 13:37
Кавычки как бы запрещены для использования в качестве имени файла ) Радоваться надо, что диалог отбрасывает ненужное и хотя бы сохраняет в bbb :D


Название: Re: Имя файла содержащее кавычки
Отправлено: 100 and 80 от Декабрь 26, 2014, 13:44
Как-то так;

Код:
    QString title = titleLabel->text();

    QString defaultName = QDir("texts/").absoluteFilePath(QString("%1.%2").arg(title).arg(formatLabel->text()));

    QString filePath = QFileDialog::getSaveFileName(this, tr("Save File"), defaultName, QString(".%1").arg(formatLabel->text()));

    qDebug() << filePath;

Проверял qDebug-ом title и defaultName выводятся правильно, filePath - нет.

Я могу создать файл с таким именем вручную.


Название: Re: Имя файла содержащее кавычки
Отправлено: Bepec от Декабрь 26, 2014, 13:53
Если б ОС написали было бы лучше )


Название: Re: Имя файла содержащее кавычки
Отправлено: gil9red от Декабрь 26, 2014, 13:54
Значения titleLabel->text() и formatLabel->text() интересуют :)


Название: Re: Имя файла содержащее кавычки
Отправлено: 100 and 80 от Декабрь 26, 2014, 14:05
linux у меня, Qt 5_4_0

Попробовал задать прямо из кода - то же поведение сохранилось - от имени остается только то, что в кавычках;

Код:
    QString title = "aaaa\"bbbb\"";
    QString format = "txt";

    QString defaultName = QDir("texts/").absoluteFilePath(QString("%1.%2").arg(title).arg(format));

    QString filePath = QFileDialog::getSaveFileName(this, tr("Save File"), defaultName, QString(".%1").arg(format));

    qDebug() << filePath;

Наверное проще заменить кавычки будет.