openSUSE,QFiles 保存在哪里?

问题描述

好的,所以这可能听起来非常微不足道,但我完全被难住了。我的最终目标是写入 .xlsx 文件或 .csv 文件,但对于初学者,我想我会尝试使用 QFile 在 qt 中打开或创建一个简单的 .txt 文件,如下所示:

int main(int argc,char *argv[]){
 QApplication a(argc,argv);
 MainWindow w;

 QString filename = "test.txt";
 QFile file(filename);
 
 if(file.open(QFile::ReadWrite | QFile::Text)){
  QTextStream stream(&file);
  stream << "something" << endl;
 }else{
  qDebug() << "file open error";
 }

 w.show();
 return a.exec();
}

通过这次尝试,我尝试了两种可能性,起初我没有创建 .txt 文件,而是让程序创建了一个,它没有抛出错误,也没有进入 else 情况.其次,我也尝试打开同一个文件,因为现在它应该是创建的,而且没有错误也没有问题。现在我想检查我的代码是否有效并且我查找了我的 .txt 文件,但我找不到它。从我在互联网上收集的信息来看,它应该在根目录中,但它不是。

之后我决定也指定路径作为我的应用程序的路径,如下所示:

int main(int argc,argv);
 MainWindow w;

 QString filename = QApplication::applicationDirPath() + "test.txt";
 QFile file(filename);
 
 if(file.open(QFile::ReadWrite | QFile::Text)){
  QTextStream stream(&file);
  stream << "something" << endl;
 }else{
  qDebug() << "file open error";
 }

 w.show();
 return a.exec();
}

相同的结果,没有错误并且在任何地方都找不到文件。我也试过 QApplication::applicationFilePath() 但这让我想到了 else 案例。

所以我要问的是我的文件保存到哪里,或者我如何以有效的方式定义文件路径。我正在使用 Qt 5.12.7 和 openSUSE Leap 15.2,非常感谢任何解决方案。

更新: 我玩了一会儿,没有成功找到文件本身,但我现在确定它们在程序退出后存在并且它们被正确保存,因为我可以正确地读取它们并且还可以从其他项目然后访问它们,然后是我创建的项目它们在,所以它们肯定不会保存在项目目录中。

解决方法

相对路径从“当前工作目录”开始,进程创建者负责将其分配到某个特定路径,例如当您从qtcreator运行您的应用程序时,它会根据运行配置分配cwd,您可以编辑运行项目选项卡上的配置。

如果您不想依赖 cwd,只需使用可执行目录作为路径 QDir(qApp->applicationDirPath()).filePath("test.txt") 的基础

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...