qdir 自动创建多级目录_Qt 判断文件或文件夹是否存在及创建文件夹
1. 判断文件夹是不是存在
参数说明:
QString fullPath;//文件夹全路径
/*方法1*/
bool isDirExist(QString fullPath)
{
QDir dir(fullPath);
if(dir.exists())
{
return true;
}
return false;
}
/*方法2*/
bool isDirExist(QString fullPath)
{
QFileInfo fileInfo(fullPath);
if(fileInfo.isDir())
{
return true;
}
return false;
}
2. 判断文件是不是存在
参数说明:
QString fullFileName;//文件全路径(包含文件名)
/*方法1*/
bool isFileExist(QString fullFileName)
{
QFileInfo fileInfo(fileFullName);
if(fileInfo.isFile())
{
return true;
}
return false;
}
3、判断文件或文件夹是不是存在(即不确定字符串是文件还是文件夹路径)
参数说明:
QString fullFilePath;//路径名
/*方法1*/
bool isFileExist(QString fullFilePath)
{
QFileInfo fileInfo(fullFilePath);
if(fileInfo.exists())
{
return true;
}
return false;
}
/*方法2*/
bool isFileExist(QString fullFilePath)
{
QFile file(fullFilePath);
if(file.exists())
{
return true;
}
return false;
}
4、判断文件夹是否存在,不存在则创建
/*方法1*/
bool isDirExist(QString fullPath)
{
QDir dir(fullPath);
if(dir.exists())
{
return true;
}
else
{
bool ok = dir.mkdir(fullPath);//只创建一级子目录,即必须保证上级目录存在
return ok;
}
}
/*方法1*/
bool isDirExist(QString fullPath)
{
QDir dir(fullPath);
if(dir.exists())
{
return true;
}
else
{
bool ok = dir.mkpath(fullPath);//创建多级目录
return ok;
}
}
5、以下为摘录的其他网络测试代码
{
QFileInfo fi("C:/123"); // 目录存在
qDebug() << fi.isFile(); // false
qDebug() << fi.isDir(); // true
qDebug() << fi.exists(); // true
qDebug() << fi.isRoot(); // false
qDebug() << QFile::exists("C:/123"); // true
qDebug() << QDir("C:/123").exists(); // true
fi.setFile("C:/ABC"); // 目录不存在
qDebug() << fi.isFile(); // false
qDebug() << fi.isDir(); // false
qDebug() << fi.exists(); // false
qDebug() << fi.isRoot(); // false
qDebug() << QFile::exists("C:/ABC"); // false
qDebug() << QDir("C:/ABC").exists(); // false
fi.setFile("C:/"); // 存在的驱动器
qDebug() << fi.isFile(); // false
qDebug() << fi.isDir(); // true
qDebug() << fi.exists(); // true
qDebug() << fi.isRoot(); // true
qDebug() << QFile::exists("C:/"); // true
qDebug() << QDir("C:/").exists(); // true
fi.setFile("Z:/"); // 不存在的驱动器
qDebug() << fi.isFile(); // false
qDebug() << fi.isDir(); // false
qDebug() << fi.exists(); // false
qDebug() << fi.isRoot(); // false
qDebug() << QFile::exists("Z:/"); // false
qDebug() << QDir("Z:/").exists(); // false
fi.setFile("C:/123.lnk"); // 快捷方式存在且指向的文件也存在
qDebug() << fi.isFile(); // true
qDebug() << fi.isDir(); // false
qDebug() << fi.exists(); // true
qDebug() << fi.isRoot(); // false
qDebug() << QFile::exists("C:/123.lnk"); // true
qDebug() << QDir("C:/123.lnk").exists(); // false
fi.setFile("C:/456.lnk"); // 快捷方式存在但指向的文件不存在
qDebug() << fi.isFile(); // false
qDebug() << fi.isDir(); // false
qDebug() << fi.exists(); // false
qDebug() << fi.isRoot(); // false
qDebug() << QFile::exists("C:/456.lnk"); // false
qDebug() << QDir("C:/456.lnk").exists(); // false
}
可以看到,容易让人感到混乱的是exists方法,这个方法是通用的判断方法,可以看成是这样的表达式
exists() == (isFile() || isDir())
也就是说判断文件或文件夹是否存在单纯用exists方法是不严谨的
比如你的本意是判断文件是否存在,但文件不存在,而恰巧有个同名的文件夹,那么exists也会返回true。文件夹也是同理
根据上面的代码作出的一点总结
准确判断文件是否存在
1.用QFileInfo::isFile()方法
准确判断文件夹是否存在
1.用QFileInfo::isDir()方法
2.用QDir::exists()方法
不确定字符串是文件还是文件夹路径
1.用QFileInfo::exists()方法
2.用QFile::exists()方法
qdir 自动创建多级目录_Qt 判断文件或文件夹是否存在及创建文件夹相关推荐
- 最简单的创建多级目录文件夹
最简单的创建多级目录文件夹 ,莫过于使用SHCreateDirectoryEx,不用CreateDirectory一级一级创建文件夹,下面示例(在VS2010下): 新建一个Wind32的window ...
- 怎样在hdfs上创建多级目录文件夹_【Hadoop】如何在hdfs根目录下创建文件夹
shell命令创建文件夹 启动hdfs,终端输入:start-dfs.sh 在hdfs中创建一个input文件夹:hadoop fs -mkdir /input/1 使用参数-p创建多级目录:hado ...
- php创建多级目录完整封装类操作
创建多级目录函数中调用创建指定下的指定文件的函数: public function create_dir($dir,$mode=0777){return is_dir($dir) or ($this- ...
- php 从根目录 开始创建,php创建多级目录的方法
php创建多级目录的方法 本文实例讲述了php创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: /* 写出一个能创建多级目录的PHP函数 */ function createdirlist ...
- PHP递归创建多级目录(一道面试题的解题过程)
今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...
- os模块创建多级目录
背景 python的os模块是可以动态创建目录的,但是很多人只了解单级目录的创建方法,其实os模块封装了完整的目录创建相关的方法. 创建单级目录 os.mkdir('./path') 创建多级目录 o ...
- Java快速创建多级目录
思路: 1.创建目录文件对象 File file = new File() 2.判断目录是否存在 !file.exists() 3.不存在则创建文件 file.mkdirs() import ...
- php使用mkdir创建多级目录入门例子
来源:http://www.jb51.net/article/49970.htm <?php //echo "hello world"; //echo "y ...
- 【转】php利用mkdir创建多级目录
先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访 ...
最新文章
- dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...
- shell--变量的替换
- Matplot的常见问题
- Node.js 应用的内存泄漏问题的检测方法
- 笔记 — 动画效果(Css3)
- 第1章 程序设计和C语言
- python---python实现快速排序
- 全功能短视频平台去水印解析页面源码
- 自顶向下方法学习笔记
- 决策树应用实例③——银行借贷模型
- 专升本英语固定词组搭配500个
- Win10:电脑共享WIFI
- 锂离子电容器_离子电容器:从Mac的App到iOS IPA
- Android Studio报错——The device might have stale dexed jars that don‘t match the current version
- python查表法是什么_python查表法提取骨骼线经历
- 木棍游戏(深搜 模板
- Rime默认为英文状态
- spring boot mybatis 日志打印配置
- SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)
- 华为OD机试 - 自动曝光(C 语言解题)【独家】