我正在尝试使用TagLib重命名.mp3文件,格式为“artist - album - song(year).mp3”并将它们移动到新目录,到目前为止我正在使用
TagLib::FileRef f(dirIt.filePath().toStdString().c_str());
QString newName = f.tag()->artist().toCString() + " - " + f.tag()->album().toCString() + " - " + (QString) f.tag()->track() + " (" + (QString) f.tag()->year() + ")";
QString newPath = NewDir.absolutePath() + QDir().separator() + newName + ".mp3";
QFile::copy(oldDir, newPath);
QFile::remove(dirIt.filePath().toStdString().c_str());
其中“dirIt”是QDirIterator(我正在迭代歌曲所在的文件夹)和“oldDir”Qstring,其中包含我正在迭代的文件夹的绝对路径。
当我试图给“newName”提供所需的值时,我的问题就来了,我正在
错误:类型'const char *'和'const char [4]'的操作数无效 二元'运算符+' QString newName = f.tag() - > artist()。toCString()+“ - ”+ f.tag() - > album()。toCString()+ “ - ”+(QString)f.tag() - > track()+“(”+(QString)f.tag() - > year() +“)”;
我该如何解决这个问题?
答案 0 :(得分:0)
使用格式字符串为新名称构建字符串:
QString newName("%1% - %2% - %3% (%4%)");
newName = newName.arg(f.tag()->artist().toCString()).arg(f.tag()->album().toCString()).arg(f.tag()->track()).arg(f.tag()->year());