Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не создается файл в windows
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Trisch
Вот примерный код создания файла.
    QFile file(fileName);
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        return;
    }

Под Linux все нормально работает, но под windows файл не создается.
При этом, в другой программе подобный код под windows нормально отрабатывает.

Вот в чем может быть проблема? Где можно искать неполадки?
FireBlack
Цитата(Trisch @ 5.9.2014, 22:56) *
Под Linux все нормально работает, но под windows файл не создается.
При этом, в другой программе подобный код под windows нормально отрабатывает.

Вот в чем может быть проблема? Где можно искать неполадки?

Неполадки можно посмотреть вызвав функцию file.errorString().

Файл может не создаваться по нескольким причинам. Во-первых, из-за нарушения правил именования файлов - наличия запрещенных символов (которые, кстати, в Linux'е и в windows'е отличаются), слишком длинного имени файла, слишком большой вложенности каталогов и т.д.. Во-вторых. из-за нехватки прав у Вашей программы или пользователя - попробуйте запустить ее от имени администратора. В-третьих, из-а повреждения файловой системы. В-четвертых, из-за защиты файловой системы от записи (если, например, используете SD карту с locker'ом).
В общем, проблема может быть где угодно - все зависит от конкретной ситуации.
Litkevich Yuriy
Цитата(Trisch @ 6.9.2014, 0:56) *
Вот в чем может быть проблема?
Ещё вариант: само имя файла, где создаётся файл? Возможно он создался, но не там где ты его ожидаешь увидеть
ahalaj
Цитата(Litkevich Yuriy @ 6.9.2014, 11:16) *
Цитата(Trisch @ 6.9.2014, 0:56) *
Вот в чем может быть проблема?
Ещё вариант: само имя файла, где создаётся файл? Возможно он создался, но не там где ты его ожидаешь увидеть

Раз QFile::open возвращает false, что видно по приведённому куску кода, то файл явно не создаётся. Так что прав FireBlack. Скорее всего действительно не хватает прав и надо попробовать запустить это же под Администратором.
Trisch
Оказалось все банально, как уже говорилось выше, были недопустимые символы в имени файла.
Все время забываю об этом нюансе :(
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.