crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Не создается файл в windows
Trisch
  опции профиля:
сообщение 5.9.2014, 21:56
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Вот примерный код создания файла.
    QFile file(fileName);
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        return;
    }

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

Вот в чем может быть проблема? Где можно искать неполадки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FireBlack
  опции профиля:
сообщение 5.9.2014, 23:28
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 17.10.2010
Из: г.Пенза
Пользователь №: 2121

Спасибо сказали: 13 раз(а)




Репутация:   1  


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

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

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

Файл может не создаваться по нескольким причинам. Во-первых, из-за нарушения правил именования файлов - наличия запрещенных символов (которые, кстати, в Linux'е и в windows'е отличаются), слишком длинного имени файла, слишком большой вложенности каталогов и т.д.. Во-вторых. из-за нехватки прав у Вашей программы или пользователя - попробуйте запустить ее от имени администратора. В-третьих, из-а повреждения файловой системы. В-четвертых, из-за защиты файловой системы от записи (если, например, используете SD карту с locker'ом).
В общем, проблема может быть где угодно - все зависит от конкретной ситуации.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.9.2014, 10:16
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Trisch @ 6.9.2014, 0:56) *
Вот в чем может быть проблема?
Ещё вариант: само имя файла, где создаётся файл? Возможно он создался, но не там где ты его ожидаешь увидеть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ahalaj
  опции профиля:
сообщение 6.9.2014, 10:58
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 14.6.2014
Пользователь №: 4166

Спасибо сказали: 13 раз(а)




Репутация:   1  


Цитата(Litkevich Yuriy @ 6.9.2014, 11:16) *
Цитата(Trisch @ 6.9.2014, 0:56) *
Вот в чем может быть проблема?
Ещё вариант: само имя файла, где создаётся файл? Возможно он создался, но не там где ты его ожидаешь увидеть

Раз QFile::open возвращает false, что видно по приведённому куску кода, то файл явно не создаётся. Так что прав FireBlack. Скорее всего действительно не хватает прав и надо попробовать запустить это же под Администратором.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 8.9.2014, 12:53
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Оказалось все банально, как уже говорилось выше, были недопустимые символы в имени файла.
Все время забываю об этом нюансе :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 2:45