Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cross-platform way of constructing an FS path with Qt [duplicate]

Possible Duplicate:
Qt equivalent of PathAppend?

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?

like image 564
dpq Avatar asked Jul 07 '10 12:07

dpq


3 Answers

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).

like image 124
Adam W Avatar answered Oct 22 '22 23:10

Adam W


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.

like image 27
liaK Avatar answered Oct 23 '22 00:10

liaK


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

like image 8
Frank Osterfeld Avatar answered Oct 22 '22 22:10

Frank Osterfeld