Qt 文件操作
Qt中的QDir类提供了“强大的”文件操作支持。
顺便提一下很常用的创建目录 :QDir::mkdir和QDir::mkpath
当然这两个是有区别的
QDir::mkdir 举个栗子D:/123/abc,假如123文件夹不存在,那么必定失败
QDir::mkpath 如果123不存在,那么Qt先创建123,再去创建abc
Qt 4下的删除
再来看一下删除,Qt提供了QDir::remove , QDir::rmdir , QDir::rmpath
QDir::remove 用于删除文件
QDir::rmdir , QDir::rmpath 删除文件夹
附上官方定义:
bool QDir::rmdir(const QString &dirName) const
Removes the directory specified by dirName.
The directory must be empty
for rmdir() to succeed.
Returns true if successful; otherwise returns false.
…
bool QDir::rmpath(const QString &dirPath) const
Removes the directory path dirPath.
The function will remove all parent directories in dirPath
, provided that they are empty. This is the opposite of mkpath(dirPath).
Returns true if successful; otherwise returns false.
敲黑板,划重点。 看不懂英文?上图。
换他的兄弟上!
结论:QDir::rmdir , QDir::rmpath必须目录非空才能被删除,rmpath还会顺带把父级目录也给删了
这里是不是和mkdir 、 mkpath的区别有点相似呢?
那么删除文件就有了:遍历文件夹 -> 挨个remove -> rmdir
从Qt5 起,有了新的方法
直到遇见了强大Qt 5
QDir::removeRecursively() 删除整个文件夹
这样一来,麻麻就再也不用担心我不会遍历目录了
是不是觉得豁然开朗,我也是这么想的。
下一篇文章,简单谈一下removeRecursively()
Qt文件操作(二)Qt删除文件、文件夹#慎用QDir::removeRecursively()remove()危险用法
顺便骗个赞。
原创文章,转载请注明来源