首页| 论坛| 消息

标题:多格式过滤器
作者:hicjiajia
日期:2011-08-21 18:27
内容:

暑假一直闷在家里搞高等数学,烦死了,上网有个同学说想要把一个文件夹中的多种格式文件分开处理,其实用CMD就可以了,本着实践的态度自己搞了个小软件。。。
文件复制部分不必说,就是一个Qt文件复制API,如果需要就递归一下 ;关键在过滤器这里,就是要实现一次复制多个指定格式的文件,用Qt自带的过滤一次只能抓取一种格式,一次多种格式好像没法了 ;我的思路是定义一个QString对象,接受例如 :jpg,png,txt 类型字符串的输入,然后用 split() 以逗号为分割符分割成QStringList,然后在复制函数中每抓取一个文件便判断QStringList是否包含指定格式文件,如果 contains 则调用 QFile::copy

声明:qCopyDirectory() 出自 wangxinus,我稍微修改了下。

关键代码如下:
#include
#include // 别忘了这两个哥们
........................
QStringList filters;
QString filters_t=ui->filters_lineEdit->text();
if (filters_t.isEmpty())
{
QMessageBox::information(this,tr("过滤器"),tr("请给出过滤器参数,多个参数可用逗号隔开,如:jpg,png,gif"));
return ;
}else if (filters_t.contains("*"))
{
filters=QStringList(QString("*"));
}else{
filters=filters_t.split(",");//多参数
}
if(qCopyDirectory(from_Dir,to_Dir,filters,true))
QMessageBox::information(this,tr("OK!"),tr("任务已成功完成!"));
else
QMessageBox::warning(this,tr("出错了"),t ..


#1 [stlcours 06-01 03:36]
实践的态度好,赞一个~!
#2 [stlcours 06-16 04:30]
今天又看到这个帖子,不禁感叹,暑假也这么努力呀,不光搞程序,而且还搞高数,小同学有前途!!

回复 发表
主题 版块