源代码:Rename: 文件批量重命名
1.使用很简单,直接把EXE文件拷贝到文件夹里,查找要替换的字符,直接替换。
2.替换的字符可以什么都不写,相当于删除查找的字符
3.修改失败的文件会标红,一般是修改后出现重名了
//查询包含filter的文件名
void myRename::queryFileList(const QString&query,QDir::Filter filter)
{
queriedFiles.clear();
queryString=query;
if(queryString.isEmpty())
return;
QDir dir;
QStringList allFiles= dir.entryList(filter);
foreach(QString file,allFiles)
{
if(file.contains(query))
queriedFiles.append(file);
}
}
//查询文件名
void Dialog::slotQueryFiles()
{
resultList->clear();
int filter=0;
if(!dirCheckBox->isChecked()&&!fileCheckBox->isChecked())
fileCheckBox->setChecked(true);
if(fileCheckBox->isChecked())
filter=QDir::Files|filter;
if(dirCheckBox->isChecked())
filter=QDir::Dirs|filter;
renameObject.queryFileList(queryLine->text(),QDir::Filter(filter));
if(renameObject.getFileList().isEmpty())
return;
resultList->addItems(renameObject.getFileList());
}
//替换文件名
void Dialog::slotReplaceFiles()
{
QBitArray result=renameObject.replaceFileName(replaceLine->text());
resultList->clear();
resultList->addItems(renameObject.getFileList());
for(int i=0;i<result.count();i++)
{
QColor color=result.at(i)?Qt::green:Qt::red;
resultList->item(i)->setBackground(color);
}
}