【问题标题】:Set QFIle save directory设置 QFIle 保存目录
【发布时间】:2017-07-08 21:39:04
【问题描述】:

我有以下代码创建一个文件并写入它。

QFile file(saveFilename);
file.open(QIODevice::WriteOnly);
QTextStream out(&file);

out << name + " - " + size + "\n";

file.close();

此文件将保存在哪里? 我有一个名为 QString saveFileDirectory 的变量,我希望将文件保存在其中。

关于如何实现这一点的任何提示? 谢谢。

【问题讨论】:

  • 除非您也提供文件路径,否则名为saveFilename 的文件将保存在当前工作目录中。
  • 如何附加文件路径?这就是我想要实现的目标。
  • saveFilename = saveFileDirectory + '/' + saveFilename; QFile file(saveFilename);
  • 啊,所以您将目录/路径附加到文件名本身。这就是我所追求的。把它作为答案@vahancho,这样我就可以绿色勾选它!

标签: c++ qt


【解决方案1】:

如果您只提供文件名,文件将保存在当前工作目录中。为了将其保存到特定目录中,您必须提供QFile 对象的完整文件路径。例如:

QString fileName;
QString directoryName;
QString filePath = directoryName + '/' + fileName;
QFile file(filePath);
if (file.open(QIODevice::WriteOnly)) {
    // Write the file content.
}

【讨论】:

    【解决方案2】:

    您可以执行以下操作:

    QFile file("c://directoryName/outfile.txt");
    file.open(QIODevice::WriteOnly | QIODevice::Text);
    QTextStream out(&file);
    out << "This is an example of data\n";
    
    // optional, as QFile destructor will already do it:
    file.close(); 
    

    或者

    你也可以使用QFileDialog::getSaveFileName通过save Dialog来保存文件数据。

    【讨论】:

    • QIODevice::Text 实现了什么?
    • @Luke: QIODevice::Text: 读取时,行尾终止符被翻译成'\n'。写入时,行尾终止符被转换为本地编码,例如 Win32 的 '\r\n'。
    猜你喜欢
    • 1970-01-01
    • 2014-06-03
    • 2014-05-03
    • 2022-09-24
    • 2016-01-31
    • 2020-10-09
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多