gpt4 book ai didi

c++ - 在 C++ 中操作 QStringList

转载 作者:行者123 更新时间:2023-11-30 05:10:34 33 4
gpt4 key购买 nike

我有一个名为filesToCopyQStringList,其中包含要复制的文件名。我想做这个输出:

for %I in ("(", "C:\Users\Nina\Documents\A.mp4", "C:\Users\Nina\Documents\A.srt", "C:\Users\Nina\Documents\A.txt", ")", "do copy %I", "C:\Users\Nins\Desktop\z")

看起来像这样:

for %I in ("C:\Users\Nina\Documents\A.mp4" "C:\Users\Nina\Documents\A.srt" "C:\Users\Nina\Documents\A.txt") do copy %I "C:\Users\Nina\Desktop\z"

这是我的代码:

d->copyProcess = new QProcess(this);
QStringList copyProcessParameters;
Q_FOREACH(QString fileName, fileNames)
{
d->totalFileSize += this->getSize(fileName);
d->filesToCopy.append(fileName);
}

d->filesToCopy.append(")");
d->filesToCopy.prepend("(");
copyProcessParameters.append(d->filesToCopy);
copyProcessParameters.append("do copy %I");
copyProcessParameters.append(destinationDir);
copyProcessParameters.replaceInStrings("/","\\");
qDebug()<<"for %I in" << copyProcessParameters;
d->copyProcess->start("for %I in", copyProcessParameters);

最佳答案

使用QStringList::join()创建以空格分隔的列表。

而且,为了简单起见,您可以使用 QString::arg()或其重载以创建具有替换的所需字符串。这将更易于使用和阅读,而不是大量的 prepend() 和/或 append() 调用。

这是一个例子:

const QString format { R"(for %I in (%1) do copy %I %2)" };

const auto command = format.arg( filesList, destinationDir );

关于c++ - 在 C++ 中操作 QStringList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610920/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com