views:

71

answers:

4

Hello,

Short story: does Qt 4 have an analog of Python's os.path.join?

Long story: I need to add a relative path to the application directory, QCoreApplication::applicationDirPath() in the Right Way (TM), so that the code doesn't depend on the file system directory separator character.

Is merely joining QStrings and using "/" as the separator a good solution?

A: 

Why not using QDir or similar?

codymanix
Because I do not see a QDir method that does exactly what I need. Could you please be more specific about what you suggest?
David Parunakian
the method QChar separator() will give you at least the separator you need to use
codymanix
+2  A: 

You can either use "/" directly or use QDir::separator(). But in general use a QDir for this (which translates "/" to the platform specific path separator for you).

Adam W
+5  A: 

From Qt 4.6 QDir documentation,

Qt uses "/" as a universal directory separator in the same way that "/" is used as a path separator in URLs. If you always use "/" as a directory separator, Qt will translate your paths to conform to the underlying operating system.

So, I guess QDir will be helpful for you.

liaK
+1 for docs. Anyways, `/` is a pretty universal seperator. It's default on POSIX, Mac OS, and supported (officially) by Windows.
rubenvb
A: 

Just use "/" when staying in the Qt world. To convert the path for non-Qt classes and functions etc., use QDir::toNativeSeparators( path ).

Frank