• qt 判断文件是否存在


    1. 判断文件夹是不是存在

     

     1 QString fullPath;//文件夹全路径
     2 /*方法1*/
     3 bool isDirExist(QString fullPath)
     4 {
     5     QDir dir(fullPath);
     6     if(dir.exists())
     7     {
     8       return true;
     9     }
    10     return false;
    11 }
    12 /*方法2*/
    13 bool isDirExist(QString fullPath)
    14 {
    15     QFileInfo fileInfo(fullPath);
    16     if(fileInfo.isDir())
    17     {
    18       return true;
    19     }
    20     return false;
    21 }

    2. 判断文件是不是存在

     

     1 QString fullFileName;//文件全路径(包含文件名)
     2 /*方法1*/
     3 bool isFileExist(QString fullFileName)
     4 {
     5     QFileInfo fileInfo(fileFullName);
     6     if(fileInfo.isFile())
     7     {
     8         return true;
     9     }
    10     return false;
    11 }

    3、判断文件或文件夹是不是存在(即不确定字符串是文件还是文件夹路径)

     View Code

    4、判断文件夹是否存在,不存在则创建

     

     1 /*方法1*/
     2 bool isDirExist(QString fullPath)
     3 {
     4     QDir dir(fullPath);
     5     if(dir.exists())
     6     {
     7       return true;
     8     }
     9     else
    10     {
    11        bool ok = dir.mkdir(fullPath);//只创建一级子目录,即必须保证上级目录存在
    12        return ok;
    13     }
    14 }
    15 
    16 /*方法2*/
    17 bool isDirExist(QString fullPath)
    18 {
    19     QDir dir(fullPath);
    20     if(dir.exists())
    21     {
    22       return true;
    23     }
    24     else
    25     {
    26        QDir dir1;
    27        bool ok = dir1.mkpath(fullPath);//创建多级目录
    28        return ok;
    29     }
    30 }

    5、以下为摘录的其他网络测试代码

     View Code

    可以看到,容易让人感到混乱的是exists方法,这个方法是通用的判断方法,可以看成是这样的表达式
    exists() == (isFile() || isDir())

    也就是说判断文件或文件夹是否存在单纯用exists方法是不严谨的
    比如你的本意是判断文件是否存在,但文件不存在,而恰巧有个同名的文件夹,那么exists也会返回true。文件夹也是同理

    根据上面的代码作出的一点总结

    准确判断文件是否存在
    1.用QFileInfo::isFile()方法

    准确判断文件夹是否存在
    1.用QFileInfo::isDir()方法
    2.用QDir::exists()方法

    不确定字符串是文件还是文件夹路径
    1.用QFileInfo::exists()方法
    2.用QFile::exists()方法

     

  • 相关阅读:
    使用jmeter对接口进行简单测试
    Python:用tkinter制做一个音乐下载小软件
    浅谈非线性回归(non-linear regression)
    学不会PDF裁剪与PDF拆分?6个方法包你轻松学会
    Visual Studio 2022编写学校收费管理系统
    视频截取gif动画怎么操作?轻松一键快速视频转gif
    三维重建系列 COLMAP: Structure-from-Motion
    深入剖析Java类加载过程:探寻类加载器的奥秘
    java maven pom application 生产prod/开发dev/测试test
    ExtJS-内置字体图标(Font)
  • 原文地址:https://blog.csdn.net/delphigbg/article/details/127754894