Russian Qt Forum

Qt => Вопросы новичков => Тема начата: liubasik от Май 29, 2022, 09:09



Название: QFile недоступен
Отправлено: liubasik от Май 29, 2022, 09:09
Мне нужно было создать свой класс файла, наследуемый от QFile, возникла проблема при вызове конструктора QFIle. Я решила вынести создание обычного файла и протестировать именно QFile. При запуске отладки file имеет такой вид (фото):

При этом я создаю файл самым простым способом.

    QFile file("Computers.txt");
    file.open(QFile::ReadWrite);

В чем может быть проблема? подскажите, пожалуйста!
Может, в QT Creator-е нельзя где попало создавать файлы? Просто я делала все аналогично с другими классами, с ними все работает, с QFile возникли проблемы


Название: Re: QFile недоступен
Отправлено: kambala от Май 29, 2022, 09:35
это проблема отладчика, она никак не связана с реальной возможностью создавать файлы. самый простой способ проверить создается ли файл — посмотреть в файловом менеджера в ожидаемое место :)

также желательно проверять результат вызова open(), т.к. файл может и не открыться для чтения/записи.


Название: Re: QFile недоступен
Отправлено: liubasik от Май 29, 2022, 09:42
Когда у меня был QFile, он даже не заходил в if (!file->exists()), сейчас заменила QFile, на QTemporaryFile, и он хотя бы заходит в этот if.
При создании файла я просто пишу " Computers.txt", так как он находится в той же директории, что и проект. Может ли это вызывать ошибку? и если да, не подскажете ли, как правильно задать путь: с двумя слэшами, с одним или как-то иначе?
Заранее спасибо!


Название: Re: QFile недоступен
Отправлено: Day от Май 29, 2022, 13:33
Цитировать
он находится в той же директории, что и проект.
Исполняемый файл  (exe) может находиться в подпапках relase, debug


Название: Re: QFile недоступен
Отправлено: liubasik от Май 29, 2022, 18:53
Действительно, оказалось, что программа создавала файл в другой папке, а не читала тот, который я ожидала....Спасибо вам большое!


Название: Re: QFile недоступен
Отправлено: Day от Май 29, 2022, 20:14
да не за что. Сам когда-то удивлялся. :)