не удается создать QFile (только с MSVC2017 UWP) - PullRequest
1 голос
/ 07 июля 2019

Создайте простое приложение qt5.12, 5.13 скомпилируйте его uwp mcvc 64 bit 2017

Попытка создать файл:

bool ret;
FILE *fp = fopen ("Name","w+"); // this command return NULL
QFile file("Name");
Ret = file. open(QIODevice::ReadWrite);

Также подано:

winrtrunner.app: QIODevice::write (QFile, "Name"): device not open

1 Ответ

1 голос
/ 07 июля 2019

Если fopen ("Name","w+") возвращает NULL, файл не может быть открыт. Следовательно, вы почти наверняка получите ошибку при открытии и попытке записи в нее с помощью Qt.

Вам нужно выяснить , почему вы не смогли его открыть. Для начала вы должны проверить errno сразу после неудачного fopen или использовать perror, чтобы получить более читаемый вывод:

FILE *fp = fopen("Name", "w+");
if (fp == NULL) perror("Could not open file: ");

Кроме того, вы можете проверить причину сбоя QFile.open(), используя (унаследованное) QIODevice::errorString():

ret = file. open(QIODevice::ReadWrite);
if (! ret) {
    const auto problem = file.errorString();
    // Now log problem somehow.
}
...