QDir :: exist возвращает true для неверного каталога - PullRequest
1 голос
/ 25 июля 2011

У меня проблема с проверкой существования каталога. я беру путь из пользовательского ввода (например, QLineEdit) и проверяю, существует ли каталог или нет, и если пользователь указывает путь «K: \» (k диск вообще не существует), мой код становится таким

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

В идеале он должен возвращать false, поскольку буква драйвера "K" не отображается, но, к сожалению, она всегда возвращает true, у кого-нибудь есть идеи, почему это так? или же Как правильно проверить наличие каталога?

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Более красивый способ проверки дисков - это QDir :: drive () метод. Также вам необходимо использовать независимый от платформы разделитель каталогов для QDir :: exist () .

0 голосов
/ 25 июля 2011

Два предложения:

  1. Попробуйте tmp.makeAbsolute ()

  2. Если это не работает, попробуйте заменить QDir tmp ("K: / ");(Косая черта Unix вместо косой черты DO / Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...