1

QString.split(' ') メソッドを使用して入力コマンドをコマンドに分割したい

    QStringList commandList =  command.split(' ');

ただし、コマンドの末尾には UNIX パスがあります。つまり、次のように見えます

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

path コマンドは実行時にユーザーによって指定されます (ユーザーはパス内のスペースをエスケープします)。なぜか 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 withspace/を返します

于 2013-03-20T01:01:10.060 に答える