最近在用qt写一个ui,遇到删除sd卡中的文件失败情况,有些时候是存在删除链表里面的文件在sd卡上已经不存在了,导致失败,以为我的链表是定时刷新的,但是文件是实时更新会同步覆盖的。这样就存在可能上一秒刚扫描存到链表里的文件下一秒就被循环覆盖了,所以增加文件判断机制。
在linux c中我一般同一用access去粗略的判断文件/目录是否存在。
QT中有以下方法可以用来判断文件/目录是否存在。
1、如果你确定自己需要判断的是一个文件则用以下接口
QFileInfo::isFile(QString fileName)方法
1 if(QFileInfo::isFile("fileName") 2 qDebug()<<"File exists"; 3 else 4 qDebug()<<"File not exists";
2、如果你确定自己需要判断的是一个目录是否存在则用以下接口
QDir::exists(QString dir)方法
1 if(QDir::exists("dir") 2 qDebug()<<"Dir exists"; 3 else 4 qDebug()<<"Dir not exists";
3、如果你不确定需要判断的是一个文件还是一个目录,你只想判断它是否存在,则用以下接口
QFile::exists(QString file)方法