QDir::separatorをファイルパスに使うことの問題

Qtではフォルダでの区切り文字を取得するためにQDir::separatorを使うことがあります。

この関数はUnixOS(MacOSを含む)では"/"、Windowsでは"\"を返してきます。

このようにリファレンスには書かれていますがこの関数はフォルダパスの構築には使うべきではありません。

例えばQtで次のようなパスが得られたとします。

C:/tmp/test

このパスにseparatorで新しいパスを作るとします。

QString newPath = testPath + QDir::separator() + "myapp"; 

こうしてしまうとパスは次のようになってしまいます。

C:/tmp/test\myapp

このようにQtではフォルダの区切り文字にすべて"/"を使っているのでフォルダパスの構築にseparatorを使うのはおススメではありません。

素直に次のように書いた方が無難です。

QString newPath = testPath + "/myapp"; 
関連項目
プライバシーポリシー