QT中的文件操纵

[复制链接]
发表于 2025-9-22 04:52:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
C语言中通过fopen/fread/fwrite/fclose举行文件操纵
C++中通过fstream/>>/<</close举行文件操纵
Linux中通过open/read/write/clos举行文件操纵

Qt中同样可以利用上述文件操纵
但是Qt同样封装了自己的一套文件操纵,,在编写Qt步调时,保举利用Qt自己提供的文件操纵,和Qt的容器(如Qstring等)更加适配、

Qt提供QFile类来实现文件操纵
继承体系


QFile类是用来实现文件操纵的类

QTemporaryFile是一个暂时文件类,当QFie销毁时,QTemporaryFile自动删除

QSaveFile是用于在写文件时,自动的把写的内容先写到暂时文件中,不会破坏原有的文件,等写入操纵完成后,将旧的文件删除,用新的文件更换旧的文件

QFile---文件类



对文件举行操纵时,先创建QFile类

必要指定文件路径和父对象

然后通过QFile类重写的open举行文件打开

mode是打开方式,分为读方式打开,写方式打开,追加写方式打开等


打开文件后就可以举行读写操纵
如:read()---由QIODevice提供

第一个是传入数组和数组巨细,将读到的内容写入数组
第二个是将读到的内容以字节数组方式返回
第三个是一个读取文件所有数据,以字节数组方式返回

write()

第一个是直接指定要写入的字符数组和数组巨细
第二个是直接传入要写入的数组
第三个是直接传入要写入字节数组

完成读写操纵后就必要举行文件关闭---释放文件形貌符,避免文件形貌符表满了
close()


例:
通过菜单栏实现文件的打开,生存,通过多行编辑框实现文件的数据的写入和体现
在头文件声明文件打开和生存信号的槽函数,将QPlainTextEdit作为一个成员变量用来存储创建的QPlainTextEdit的指针,便于向多行输入框举行读写

设置布局

毗连槽函数


在源文件举行定义实现槽函数
打开文件

生存文件

此时可以打开文件,将文件的数据体现到多行输入框,或者将多行输入框的数据生存到新建文件内






总结

对文件操纵的流程是,通过弹出打开/生存文件对话框
QString path=QFileDialog::getOpenFileName(this)
QString path=QFileDialog::getSaveFileName(this)
获取要操纵的文件的路径

在通过QFlie类创建对应文件类
QFile file(path)

再通过open()以读/写方式打开,需吸收返回值,判断是否打开成功
如果读文件则调用用文件类调用readAll(),通过QString吸收读取的数据---为QByteArrary范例,会自动转换为QString范例

如果写文件则调用文件类的write(),将要写入的数据传入wirte函数,必要转换为QByteArrary范例





QFileInfo---文件和目次信息

QFielInfo是Qt提供的一个用于获取文件相关属性的类,如文件名,文件巨细,文件修改日期等

常用方法
                        方法
                       
                        分析
                       
                        isDir()
                       
                        查抄该文件是否有目次
                       
                        isExecutable()
                       
                        查抄该文件是否是可实行文件
                       
                        fileName()
                       
                        得到文件名
                       
                        completeBaseName()
                       
                        获取完备的文件名
                       
                        suffix()
                       
                        获取文件后缀名
                       
                        completeSuffix()
                       
                        获取完备的文件后缀
                       
                        size()
                       
                        获取文件巨细
                       
                        isFile()
                       
                        判断是否为文件
                       
                        fileTime()
                       
                        获取文件创建时间,修改时间,迩来访问时间等
                       


例:
创建一个继承自QWidget的文件,在ui界面创建一个按钮,通过点击按钮弹出打开文件对话框,获取文件路径,通过文件路径创建QFileInfo类

转到clicked槽函数举行实现,打印文件的相关属性


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表