QT5删除隐藏目录+隐藏文件(使用Process::start函数调用系统命令,且等待到结束)
2016-10-21 18:58
946 查看
1、功能需求
删除一个目录(包括目录本身),同时删除该目录中所有文件及目录(含隐藏的)
2、遇到的问题
qt5中已经有了递归删除目录的函数--->bool QDir::removeRecursively()
例如:这里要删除d:/22/33目录
但是,如果33目录中有隐藏的目录或文件,就会删除失败(非隐藏的目录或文件正常删除)
那么,在windows下删除目录的命令为:rmdir /s /q 目录路径
直接用Qprocess调用windows命令怎么样呢? 呵呵,好像是删不掉的哦(原因未知)
3、解决办法
使用脚本删除目录(可行):
这样的话,就可以删除含有隐藏目录或文件的目录了。
删除一个目录(包括目录本身),同时删除该目录中所有文件及目录(含隐藏的)
2、遇到的问题
qt5中已经有了递归删除目录的函数--->bool QDir::removeRecursively()
例如:这里要删除d:/22/33目录
QDir dir("d:/22/33"); dir.removeRecursively(); //33目录以及里面的内容全部删除
但是,如果33目录中有隐藏的目录或文件,就会删除失败(非隐藏的目录或文件正常删除)
那么,在windows下删除目录的命令为:rmdir /s /q 目录路径
直接用Qprocess调用windows命令怎么样呢? 呵呵,好像是删不掉的哦(原因未知)
3、解决办法
使用脚本删除目录(可行):
QDir dir("d:/22/33"); QFileInfo rmInfo("rm.bat"); if (!rmInfo.exists()) { QFile file("rm.bat"); if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream text(&file); text << "rmdir /s /q %1"; } file.close(); } QProcess process; process.setWorkingDirectory(QDir::currentPath()); process.start("rm.bat", QStringList() << dir.absolutePath().replace('/', '\\') ); process.waitForFinished();
这样的话,就可以删除含有隐藏目录或文件的目录了。
相关文章推荐
- unlink命令_Linux unlink 命令用法详解:系统调用函数unlink去删除指定的文件
- 用php 执行PhantomJS文件,php中使用exec,system等函数调用系统命令
- 使用adb命令删除Android系统data目录下文件及文件夹
- php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
- php中使用exec,system等函数调用系统命令
- Attrib 显示、设置或删除指派给文件或目录的只读、存档、系统以及隐藏属性
- Linux系统下使用命令删除文件和文件夹
- 使用批处理命令删除系统垃圾文件
- php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
- lamp使用php处理上传文件,调用move_uploaded_file函数遇到目录写权限问题及解决过程
- linux下查看系统是32位还是64位,删除文件或者目录,查看ip配置命令
- linux下查看系统是32位还是64位,删除文件或者目录,查看ip配置命令
- 在XP操作系统中使用批处理命令删除系统垃圾文件
- Linux系统下,使用rm命令删除文件的恢复方法
- 2.6版本Linux上替换系统调用函数实现隐藏文件学习
- 用命令或批处理命令一次删除windows系统一个目录下的所有文件
- 使用ext3grep恢复ext3文件系统中误删除文件(使用rm命令误删的)
- php中使用exec,system等函数调用系统命令
- 使用ext3grep恢复ext3文件系统中误删除文件(使用rm命令误删的)
- LInux文件基础知识和文件目录操作(系统调用函数方式)