目录
关于Qt中相对路径的问题
QT 相对路径访问不成功原因
QT 【QFile无法写入文件问题(文件名字以及文件关闭)】
QT打开文件失败问题
Linux下QT QFile写方式打开文件失败 (***):一种解决路径问题的思路。
Qt小技巧: 文件绝对路径
------------------------------------------------------------
==================================
Qt小技巧: 文件绝对路径
代码
#include <QDebug>
#include <QFileInfo>
#include <QFile>int main(int , char **)
{
QString fileName = "./hello.txt";
/*
确保测试文件存在
*/
if (!QFile::exists(fileName))
{
QFile file(fileName);
if (file.open(QIODevice::ReadWrite))
file.close();
}/* 文件绝对路径获取 */
QFileInfo info(fileName);
qDebug() << "absoluteFilePath: " << info.absoluteFilePath();
qDebug() << "absolutePath: " << info.absolutePath();return 0;
}
运行结果
————————————————
版权声明:本文为CSDN博主「听我一言」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/halo_hsuh/article/details/119919858
Linux下QT QFile写方式打开文件失败 (***)
https://bbs.csdn.net/topics/370064146
这是一种解决路径问题的思路。
1. 文件是否存在
file.exists() 判断下文件存不存在,不存在就是你路径的问题。
QFile file(":/userinfo.txt"); // 路径不对吧:资源文件的路径格式":/",是只读的。
2. 使用全路径访问
QFile file("userinfo.txt"); 用当前路径或者全路径
3. 如果使用全路径 OK,只是“相对路径”产生了问题
3.1. 在 .pro文件中,设置了 TARGET = app_abc/def
使得当前路径被设置成了 非默认格式,由此产生问题
3.2. 重新设置 当前路径 QDir::setCurrent
QDir::setCurrent(app.applicationDirPath());//添加这句 立马可以
3.3. 其他原因,甚至在运行时,导致了工作路径的改变。
3.3.1. 打开了错误路径下的文件:到底是、哪一个文件?
源文件目录下,有一个读写文件;
在编译目录下,同样有一个读写文件;
在使用相对路径时,指的是在编译目录下的文件,而不是源文件目录下的同名文件。
QT 【QFile无法写入文件问题(文件名字以及文件关闭)】
第一种错误:如果你名字中如果存在:分号,就会导致文件创建文件名字错误
文件名字可能会成为123 ,而不是123:123.text
QFile file("d:/123:123.txt");
file.open(QIODevice::ReadOnly);
file.write("123");
file.close();
第二种错误:如果是单纯的打开文件,写完之后么没有关闭文件,也就是没有保存文件,就会发现
写完文件之后文件还是空的
QFile file("d:/123.txt");
file.open(QIODevice::ReadOnly);
file.write("123");
————————————————
版权声明:本文为CSDN博主「IT小生lkc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_20017379/article/details/124485067
关于Qt中相对路径的问题
在开发Qt项目过程中,涉及到写入文件方面,出现了一些关于相对路径的问题
首先尝试的是直接在Qt资源文件qrc中添加文件,然后发现文件不能以写入的模式打开。查了一下,发现 qrc文件支持的是只读模式,不能写入。
后面在.pro所在目录下创建文件,出现的问题是访问路径出错,没有文件,发现是对Qt中相对路径的的理解不对。
最后在构建目录(可执行文件.exe所在目录)下面创建文件成功通过。
总结一下:
Qt中相对路径:
//相对对qrc中的文件访问路径(:/ 表示 qrc文件目录)
:/文件路径
//相对构建目录相对路径(./ 表示 构建目录下)
./文件路径
如果只是对文件进行读取操作,可以直接添加在qrc中(用:/访问目录下),
如果需要进行写入,又使用相对路径,需要注意源码中的(./)路径是在构建目录下的。
————————————————
版权声明:本文为CSDN博主「qq_40300116」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40300116/article/details/108873512
QT 相对路径访问不成功原因
最近用相对路径 资源必须在资源文件夹,否则访问失败
实际测试只要在main 函数添加下面依据 即可
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Widget *widget = new Widget;
QDir::setCurrent(app.applicationDirPath());//添加这句 立马可以
widget->show();return app.exec();
}
转载于:https://blog.51cto.com/11496263/1879140
QT打开文件失败问题
QT打开文件失败问题_qt打开配置文件失败_TANNNNNIM的博客-CSDN博客
QT资源文件-QFile Write/WriteOnly/ReadWrite打开失败说明
前言
在使用QT进行开发过程中,常常会使用qrc(资源文件),比如一些配置文件,图片,图标(icon)等,但是一些没有经验的小伙伴会想着将配置文件的数据进行修改,发现无法以代码的方式对资源文件进行修改。
代码说明
#include <QCoreApplication>
#include <QtDebug>
#include <QFile>
#include <QIODevice>int main(int argc, char *argv[])
{
QFile file(":/config/1.xml");//1.xml是资源文件目录config下的文件
qDebug() << "file_exist:" << file.exists(); //假如资源文件存在,返回 true
bool b_open = file.open(QIODevice::WriteOnly);//返回false
b_open = file.open(QIODevice::ReadOnly);// 返回true
}
结论
QT中,使用QFile能够读取资源文件,但是不能以写的方式打开文件,因为资源文件(路径以“:”和普通文件区别)一般都是作为只读的形式存在,
如果想操作资源文件,那么路径就不要以":"开头,这样QT就会将该文件当做普通文件,就可以对该文件进行读写操作了。
————————————————
版权声明:本文为CSDN博主「abcd552191868」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/abcd552191868/article/details/122579095