2010-07-07 31 views
15

可能重複的跨平臺方式:
Qt equivalent of PathAppend?構建了Qt的FS路徑

簡單地說:沒有的Qt 4有Python的os.path.join的模擬?

長篇故事:我需要在Right Way(TM)中爲應用程序目錄添加一個相對路徑QCoreApplication::applicationDirPath(),以便代碼不依賴於文件系統目錄分隔符。

僅僅加入QStrings並使用「/」作爲分隔符是一個很好的解決方案?

+0

操作符重載可能會被濫用,但重載'operator /'路徑不是。 'QCoreApplication :: applicationDirPath()/「MySubDir」'是完全合理的代碼。恥辱Qt4沒有。 – MSalters 2010-07-07 14:12:47

+0

爲什麼不使用[QDir](http://doc.qt.nokia.com/4.6/qdir.html)或類似的東西? – codymanix 2010-07-07 12:44:34

+0

因爲我沒有看到完全符合我需要的QDir方法。你能更具體地說明你的建議嗎? – dpq 2010-07-07 12:52:44

回答

13

您可以直接使用「/」或使用QDir::separator()。但是通常使用QDir(這會將「/」轉換爲平臺特定的路徑分隔符)。

14

從Qt的4.6 QDir文檔,

Qt使用「/」作爲在同樣的方式,「/」被用作在URL的路徑分隔的通用目錄分隔符。如果您總是使用「/」作爲目錄分隔符,Qt會將您的路徑轉換爲符合底層操作系統。

所以,我猜QDir會對你有所幫助。

+0

+1的文檔的分隔符。無論如何,'/'是一個非常普遍的分隔符。它在POSIX,Mac OS上是默認的,並且由Windows支持(正式)。 – rubenvb 2010-07-07 14:16:58

4

只要在Qt世界中使用「/」即可。 要轉換非Qt類和函數等的路徑,請使用QDir :: toNativeSeparators(path)。