Russian Qt Forum
Ноябрь 22, 2024, 22:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Структура папок на Symbian. Куда что?  (Прочитано 5410 раз)
km13
Гость
« : Июль 22, 2010, 12:33 »

Добрый день.
Пишу программу на Nokia (Symbian OS v9.1 - v.9.5).
Кратко:
Программа использует SQLite, подключается к ftp, тянет оттуда файл (формат не важен), парсит его, заполняет базу данных. Ну иногда создает опять же файл и кладет его на ftp.
Отладил на эмуляторе, пришла очередь тестировать на устройстве.
Вот тут и возникает вопрос. Как правильно развернуть это все на телефоне.
Sis-файл программы инсталлируется без проблем.
Вопросы:
1. Куда положить базу данных, и как то прописать к ней путь для setDatabaseName("...") ?
2. Где создать папку temp куда будут складываться файлы с ftp и там же будут собираться файлы перед отправкой.
3. Как это сделать правильно? Воспользоваться стандартными каталогами или где то создать свои?
4. Как это автоматизировать? Что бы пустая БД копировалась вместе с инсталляцией, создавались каталоги и.т.д

Нашел информацию по теме: http://www.s40s60.dp.ua/docs/s60_filesystem , - но мне она показалась недостаточной.
Записан
whirlwind
Гость
« Ответ #1 : Июль 22, 2010, 16:23 »

4. Как это автоматизировать? Что бы пустая БД копировалась вместе с инсталляцией, создавались каталоги и.т.д
можно засунуть внутрь в sis-файла практически все что угодно и, в принципе, пустые директории он тоже создавать может

была где-то хорошая статья про то, как его правильно создавать, но не нашлась...
только вот это может, поможет http://developer.symbian.org/wiki/index.php/Create,_Use,_and_Deploy_a_Shared_Library_DLL_on_Qt
Записан
sq_vasya
Гость
« Ответ #2 : Август 31, 2010, 13:30 »

Вопросы:
1. Куда положить базу данных, и как то прописать к ней путь для setDatabaseName("...") ?
2. Где создать папку temp куда будут складываться файлы с ftp и там же будут собираться файлы перед отправкой.
3. Как это сделать правильно? Воспользоваться стандартными каталогами или где то создать свои?


По поводу где хранить базу и где создавать временные папки. Я бы это делал в приватной директории приложения.
http://wiki.forum.nokia.com/index.php/How_to_get_private_directory смотри здесь, как получить путь к ней. В ней при помощи RFs::MkDir() и RFs::MkDirAll() можно создавать свои папки.
Объясняю свою точку зрения. Никакое другое приложение (если оно, конечно, не обладает капабилити AllFiles) не будет иметь доступа к Вашей базе и не сможет её умышленно или неумышленно повредить. Во-вторых, одно из требований Simbian Signing чтобы приложение после себя оставляло не больше, чем 2к данных на дисках после деинсталяции. Поскольку приватная директория удаляется при удалении приложения со всем содержимым, то не нужно заморачиваться дополнительно на удаление именно этой директории.

Цитировать
4. Как это автоматизировать? Что бы пустая БД копировалась вместе с инсталляцией, создавались каталоги и.т.д

Это элементарно делается при помощи pkg файла.

Код:
...
"MyDatabase.dat"                                       -"!:\private\e57ab29e\MyDatabase.dat"
...

где e57ab29e нужно заменить на ID Вашего приложения.

http://library.forum.nokia.com/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/ToolsAndUtilities94/Installing-ref/PKG_format/index.html - здесь полностью расписан формат pkg файла. Ссылку привожу на случай если Вам будет необходимо сделать что-то более сложное.
Записан
Kuper
Гость
« Ответ #3 : Октябрь 19, 2010, 15:31 »

Цитировать

Это элементарно делается при помощи pkg файла.

Код:
...
"MyDatabase.dat"                                       -"!:\private\e57ab29e\MyDatabase.dat"
...


Здравствуйте.
Что то элементарно не получается, pkg файл перезаписывается после того как сделаю билд проекта и в нем уже нету моей строки. Если ставлю атрибут редонли, то pkg файл естественно не перезаписывается, но и файл в пакет sis все равно не подкладывается.

И про какой pkg файл идет речь? У меня есть <название проекта>_installer.pkg и <название проекта>_template.pkg. Изменял <название проекта>_installer.pkg

Код:
"C:/NokiaQtSDK/Projects/MobAdvert/MobAdvert.db" - "c:\private\2002CCCE\import\MobAdvert.db"
Записан
sq_vasya
Гость
« Ответ #4 : Ноябрь 10, 2010, 15:52 »


Здравствуйте.
Что то элементарно не получается, pkg файл перезаписывается после того как сделаю билд проекта и в нем уже нету моей строки.

Да, согласен. Мой фейл. Вышеуказанный код справедлив для нативного Symbian приложения. Если же мы это делаем на Qt, то вместо

Код:
...
"MyDatabase.dat"                                       -"!:\private\e57ab29e\MyDatabase.dat"
...

нужно писать

Код:
...
BLD_INF_RULES.prj_exports +=  ".MyDatabase.dat \epoc32\winscw\c\private/e57ab29e\MyDatabase.dat"
...

но уже в *.pro файле Qt проекта.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 20.