保存具有自定义扩展名的文件

Posted

技术标签:

【中文标题】保存具有自定义扩展名的文件【英文标题】:Saving a file with a custom extension 【发布时间】:2012-06-20 14:31:42 【问题描述】:

我有一个我在 Windows 中编写的程序,这段代码在 Windows 上运行,但是在 linux 中编译时,保存的文件没有 .l2p 扩展名。

void MainWindow::on_saveButton_clicked()
 
     QString fileName = QFileDialog::getSaveFileName(this,
         tr("Salvesta Projekt"), "",
         tr("Latid Pindalaks (*.l2p)"));

     if (fileName.isEmpty())
         return;
     ...

我该怎么办?

【问题讨论】:

你得到的最终结果是什么? 它显示了保存对话框,看起来一切都很好,但是它保存的文件没有扩展名。 你想要强制的行为正是我讨厌 Windows 应用程序的地方。文件扩展名应该取决于用户是否使用(它们是文件名的一部分,由用户选择)。您可以让用户在“Latid Pindalaks (*.l2p)”和“所有文件 (*)”之间进行选择,并且只有在他选择第一个时才强制扩展。但我不确定 Qt 是否为您提供有关在对话框的组合框中选择了哪一个的信息。 【参考方案1】:

如果文件名没有您需要的扩展名,只需添加即可:

QString fileName = QFileDialog::getSaveFileName(this,
    tr("Salvesta Projekt"), "",
    tr("Latid Pindalaks (*.l2p)"));

if (fileName.isEmpty())
    return;

if (!fileName.endsWith(".l2p"))
    fileName += ".l2p";

【讨论】:

以上是关于保存具有自定义扩展名的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用具有自定义文件扩展名的 H2 数据库?

使用具有自定义扩展名的 SDF 文件(SQLCE 数据库)作为我的 WPF 应用程序的数据文件类型

选择具有自定义扩展名的文件时运行我的应用程序(并执行某些操作)

使应用程序支持 action_send 仅用于自定义文件扩展名

如何在文档目录中创建具有自定义扩展名的文件?

Richfilemanager 列出具有自定义扩展名的文件