[Solved] Howto get the path part of a filename?

  • I have a (relative) filename for a file that doesn't yet exist.

    Before I can create it, I have to make sure all the parent directories exist. QDir::mkpath should do that for me.

    However, I cannot simply hand over the filename to mkpath. Instead, I have to hand over the path part of the filename, e.g. for 'home/test/mytest.png' the path part would be 'home/test'

    Yet, I haven't found any method in QDir, QFile or QFileInfo that would return the path part from a either relative or absolute filename. Nor have I found a function that would allow me to remove the last level from a path/filename. Of course, I can resort to string manipulation, but I feel there should be something more path-aware doing that.

    Have I missed something?

    (Qt 4.8)

  • Moderators

    You missed QFileInfo::absolutePath() and QFileInfo::canonicalPath()

  • For a non-existing file?

    Edit: I was fooled into thinking that QFileInfo would require the file to exist.

  • Moderators

    Well according to the doc cannonicalPath() indeed returns empty string if the file doesn't exist but you should be fine with absolutePath()

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.