web-dev-qa-db-ja.com

Qtを使用してFSパスを構築するクロスプラットフォームの方法

重複の可能性:
PathAppendと同等のQt?

短編小説:Qt 4にはPythonの_os.path.join_の類似物がありますか?

長い話:コードがファイルシステムのディレクトリ区切り文字に依存しないように、アプリケーションディレクトリへの相対パスQCoreApplication::applicationDirPath() in the Right Way(TM)を追加する必要があります。

QStringsを結合し、区切り文字として「/」を使用するだけで良い解決策ですか?

24
dpq

「/」を直接使用するか、 QDir::separator() を使用できます。ただし、通常、これには QDir を使用します(これは「/」をプラットフォーム固有のパス区切り文字に変換します)。

19
Adam W

Qt 4.6から QDir ドキュメント、

Qtは、「/」がURLのパス区切り文字として使用されるのと同じ方法で、「/」をユニバーサルディレクトリ区切り文字として使用します。ディレクトリ区切り文字として常に「/」を使用する場合、Qtはパスを変換して、基盤となるオペレーティングシステムに準拠させます。

ですから、QDirが役立つと思います。

17
liaK

Qtの世界に滞在するときは、「/」を使用するだけです。 Qt以外のクラスや関数などのパスを変換するには、QDir :: toNativeSeparators(path)を使用します。

7
Frank Osterfeld