你这个问题,我以前研究过,我的思路是:
定义一个函数qFile(const QDir& fromDir, const QDir& toDir, const QStringList& filters, bool bCoverIfFileExists)
第三个QStringList参数filters为过滤器,用来获取指定扩展名的文件,关键是此参数并不作为entryInfoList()的过滤参数,让entryInfoList()参数为空,以便获取当前目录下的所有文件及目录,然后通过QFileInfo获取每个文件的具体信息,并判断每个文件信息的后缀是否为过滤器参数 :
if(filters.contains(fileInfo.completeSuffix())) { 获取指定扩展名文件后的一些操作 ... }
如果需要递归操作目录的话,加句 :
if(fileInfo.isDir()) {qFile(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName()),filters,bCoverIfFileExists)) }
为此我特意做了一个示例,功能就是递归复制指定文件夹下的所有所有指定文件,如果在 Window下再 配合API动态获取U盘接入信号后台启动程序就变成U盘大盗了 ... (复制部分参考了wangxinus的代码,稍作修改 ) :
[upload=2]