1

我想使用 QString.split(' ') 方法将输入命令拆分为命令

    QStringList commandList =  command.split(' ');

然而,命令的末尾有一个 UNIX 路径。即它看起来像

    QString command = new QString("caommand -a -b /path/to\ specific/file");

路径命令由用户在运行时指定(用户转义路径中的任何空格)。出于某种原因 command.split(' '); 不会逃脱空格。

我是 QT 的新手,它如何逃脱空间?

谢谢你的帮助

4

1 回答 1

1

您可以使用QDir::toNativeSeparators()将其转换为 unix 样式。并按空格分割接收到的结果,尽管您必须弄清楚命令之间的空格在哪里以及文件名中可能的空格在哪里

例如:

QString myUnixPath = QDir::toNativeSeparators("/home/path with spaces/");

将返回 unix 样式路径,而

QString qtPath = QDir::fromNativeSeparators("/path/with\ spaces/");

将返回 /path 带空格 /

于 2013-03-20T01:01:10.060 回答