对于无效目录,QDir :: exists返回true

时间:2011-07-25 06:52:13

标签: qt qt4

我在检查目录是否存在时遇到问题。 我从用户输入(例如QLineEdit)获取路径并检查目录是否存在,如果用户指定路径“K:\”(k驱动器根本不存在),我的代码就像这样

QDir tmp("K:\\");
if(tmp.exists())
   return true;
else
  return false;

理想情况下它应该返回false,因为驱动程序字母“K”没有映射,但遗憾的是它一直返回true,有没有人知道为什么会这样?要么 检查目录是否存在的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

两个建议:

  1. 尝试使用tmp.makeAbsolute()

  2. 如果不起作用,请尝试替换QDir tmp(“K:/”); (Unix正斜杠而不是DO / Windows反斜杠)。

答案 1 :(得分:0)

检查驱动器的更好方法是QDir::drives()方法。您还需要platform independent directory seperator使用QDir::exists()