Qt 正在从QStringList中删除文件路径

Qt 正在从QStringList中删除文件路径,qt,qstring,Qt,Qstring,我有一个QStringList完整的文件路径。但是这些文件路径不是正常格式,我在文件路径中有环境变量,例如%path\u OF_VAR%/GEN/abc.txt。我正在使用文件名,但显然它不起作用。我想做的是,我只需要从中获取文件名并将其保存在另一个QStringList中。当从第二个QStringList删除任何文件名时,需要自动从第一个QStringList 编辑: Xmlget.load(字符串); QStringList表; QStringList预设_scr; QString名称; f

我有一个
QStringList
完整的文件路径。但是这些文件路径不是正常格式,我在文件路径中有环境变量,例如
%path\u OF_VAR%/GEN/abc.txt
。我正在使用
文件名
,但显然它不起作用。我想做的是,我只需要从中获取文件名并将其保存在另一个
QStringList
中。当从第二个
QStringList
删除任何文件名时,需要自动从第一个
QStringList

编辑:

Xmlget.load(字符串);
QStringList表;
QStringList预设_scr;
QString名称;
findandDescent(“INIT_SKRIPTE”);
而(xmlget.findNext(“skcript”))
{
预置scr.append(xmlget.getString());
}

对于(int i=0;i如果您的文件路径总是看起来像
%path\u OF_VAR%/GEN/abc.txt
,那么您可以这样填写第二个列表:

foreach(const QString& path, preset_scr) {
    QString name = preset_scr.at(i).split("/").last();
    list.append(name); 
}
第二,当您从第二个列表中删除字符串时,您可以像这样从第一个列表中删除路径(假设
fileName
是要删除的名称):


您可以尝试迭代列表并拆分每个字符串以仅获取文件名:

QStringList preset_scr;
QStringList newList;
QString filename;

for( const auto & s : preset_scr ) {
    filename = s.split("/").last();
    newList.append(filename);
}

你能告诉我们到目前为止你已经尝试了什么吗?文件名被我删除了,我希望文件路径被自动删除。你不能自动这么做。每次你从第二个列表中删除数据时,只要调用这段代码就可以了。我把它拆分了,每当我的第二个qstringlist被编辑时,我都要更新我的第一个qstringlist(即文件路径)
for(int i = preset_scr.count() - 1; i>=0; --i) {
    if(preset_scr.at(i).split("/").last() == fileName)
        preset_scr.removeAt(i);
}
QStringList preset_scr;
QStringList newList;
QString filename;

for( const auto & s : preset_scr ) {
    filename = s.split("/").last();
    newList.append(filename);
}