QFile和QDir使用以及自动文件创建

当使用QFile打开指定文件的时候:

1、文件名中不包含路径("test.txt"),若文件存在则打开成功,若文件不存在则创建该文件,open返回值均为true。

2、文件命中包含路径:

    a、若该路径已经存在,则open函数打开或创建指定文件。

    b、若路径不存在,则open函数打开失败,且不再创建该文件。

在打开文件前,可以使用QFile::exists检查文件是否存在。


当使用QDir时,有mkdir和mkpath可以创建指定的路径。

使用mkdir时:若指定创建的路径其上一层目录存在,则创建成功,否则创建失败。

使用mkpath时:创建指定的路径。

接下来,使用QDir和QFile实现检查文件是否存在,若不存在则自动创建该文件:

bool confirmFile(const QString sFile) const
{
    QString sAppPath = QCoreApplication::applicationDirPath();
    QString sFilePath = sAppPath+sFile;
    QString sPath = sFilePath.left(sFilePath.lastIndexOf('/'));
    //文件是否存在
    if(QFile::exists(sFilePath))
        return true;//文件存在,则确认可以操作
    //文件不存在,先看路径是否存在
    QDir dir(sPath);
    if(!dir.exists(sPath))
    {
        //路径不存在,则创建路径
        if(!dir.mkdir(sPath))
            return false;//路径创建失败就没办法了,通常不会失败
    }
    //到这里需确认路径已经ok,且文件不存在,创建文件
    QFile file(sFilePath);
    //当以Write方式打开时,若文件不存在则自动创建
    if(!file.open(QIODevice::WriteOnly))
        return false;
    file.close();
    return true;
}



  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值