2010-07-07 15 views
15

Eventuali duplicati:
Qt equivalent of PathAppend?multipiattaforma modo di costruire un percorso di FS con Qt

Breve storia: non Qt 4 hanno un analogo di Python di os.path.join?

Lunga storia: ho bisogno di aggiungere un percorso relativo alla directory dell'applicazione, QCoreApplication::applicationDirPath() nel modo giusto (TM), in modo che il codice non dipenda dal carattere separatore della directory del file system.

È semplicemente unendo QStrings e utilizzando "/" come separatore una buona soluzione?

+0

L'overloading dell'operatore può essere abusato, ma l'overload 'operatore /' per i percorsi non lo è. 'QCoreApplication :: applicationDirPath() /" MySubDir "' è un codice perfettamente ragionevole. La vergogna Qt4 non ha questo. – MSalters

+0

Perché non utilizzare [QDir] (http://doc.qt.nokia.com/4.6/qdir.html) o simile? – codymanix

+0

Perché non vedo un metodo QDir che fa esattamente ciò di cui ho bisogno. Potresti essere più specifico su cosa suggerisci? – dpq

risposta

13

È possibile utilizzare "/" direttamente oppure utilizzare QDir::separator(). Ma in generale usa uno QDir per questo (che traduce "/" per il separatore di percorso specifico della piattaforma per te).

14

Da Qt 4.6 QDir documentazione,

Qt utilizza "/" come separatore elenco universale nello stesso modo che "/" viene utilizzato come separatore di percorso negli URL. Se si utilizza sempre "/" come separatore di directory, Qt tradurrà i percorsi in modo che siano conformi al sistema operativo sottostante.

Quindi, credo che QDir sarà utile per voi.

+0

+1 per i documenti. Ad ogni modo, '/' è un separatore piuttosto universale. È di default su POSIX, Mac OS e supportato (ufficialmente) da Windows. – rubenvb

4

Basta usare "/" quando si soggiorna nel mondo Qt. Per convertire il percorso per classi e funzioni diverse da Qt, utilizzare QDir :: toNativeSeparators (percorso).

Problemi correlati