C++ 用Qt构造FS路径的跨平台方法
可能重复:C++ 用Qt构造FS路径的跨平台方法,c++,qt,filesystems,portability,C++,Qt,Filesystems,Portability,可能重复: 短篇故事:Qt4是否有类似Python的os.path.join 长话短说:我需要以正确的方式(TM)向应用程序目录添加一个相对路径,QCoreApplication::applicationDirPath(),以便代码不依赖于文件系统目录分隔符 仅仅加入QString并使用“/”作为分隔符是一个好的解决方案吗?您可以直接使用“/”或使用。但通常使用a来表示(它将“/”转换为平台特定的路径分隔符)。来自Qt 4.6文档 Qt使用“/”作为通用目录分隔符,与在URL中使用“/”作为路
短篇故事:Qt4是否有类似Python的
os.path.join
长话短说:我需要以正确的方式(TM)向应用程序目录添加一个相对路径,QCoreApplication::applicationDirPath()
,以便代码不依赖于文件系统目录分隔符
仅仅加入QString并使用“/”作为分隔符是一个好的解决方案吗?您可以直接使用“/”或使用。但通常使用a来表示(它将“/”转换为平台特定的路径分隔符)。来自Qt 4.6文档
Qt使用“/”作为通用目录分隔符,与在URL中使用“/”作为路径分隔符的方式相同。如果始终使用“/”作为目录分隔符,Qt将转换路径以符合底层操作系统。
所以,我想QDir会对你有所帮助。在Qt世界中只需使用“/”。
要转换非Qt类和函数等的路径,请使用QDir::TonativeParators(路径)。+1表示文档。无论如何,
/
是一个非常通用的分隔符。这是POSIX、Mac OS上的默认设置,Windows(正式)支持。为什么不使用或类似的方法呢?因为我看不到一个QDir方法可以完全满足我的需要。您能更具体地说明一下您的建议吗?运算符重载可能会被滥用,但路径的重载Operator/
则不会被滥用<代码>QCoreApplication::applicationDirPath()/“MySubDir”是非常合理的代码。可惜Qt4没有。QChar separator()方法将至少提供您需要使用的分隔符