Qt中路径问题的产生一般发生在在跨平台编译的时候,由于不同系统对于路径的表示不同,造成了一种现象就是在某一个系统上顺利执行的一段代码在另一个系统上却无法执行,甚至出错。


我遇到的问题就是在linux上执行良好的一段代码,当移植到windows下时候,却出错。


这里主要是斜杠与反斜杠、不同系统对路径的解析不同造成的 。


1、斜杠与反斜杠:

   网上解决办法:将



QString path = "C:/testA\\testB\testC.txt";
QString tmpPath;
if(path.contains("\\"))
{
tmpPath = path.replace("\\","/",Qt::CaseInsensitive);
}
if(tmpPath .contains("\\"))
{
tmpPath = tmpPath .replace("\\","/",Qt::CaseInsensitive);
}

2.通用方法。(强烈推荐!)

 

QString path ;

path = "E:/file1/file2/file3.txt";

path = QDir::toNativeSeparators(path);

//这样就转化为本地格式。可以直接使用了。