Вопрос

что-то никак не получается открыть файл по инструкции .

добавляю в деплоймент менеджере файл в .\ 

в программе использую System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), FileName)

а файл не находится. причём в андроиде всё путем. может что-то  у них поменялось ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

56 ответов на этот вопрос

  • 0

почему Бровин говорит что " если файл нужен только на чтение, то пути менять не надо " а абракадабра говорит что нужно класть в  StartUp\Documents ?

Но у меня неберёт нигде ! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

В iOS нужно писать StartUp\Documents.

В Android assets\internal. 

Посмотрите, что  у вас представляет собой filename. Судя по вашему коду должно быть имя файла плюс расширение.

Изменено пользователем Alex7wrt
Kitty и Равиль Зарипов (ZuBy) понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

да так написано и на Андроиде работает без проблем. А на   iOS32 нивкакую :(

причём все файлы апликации ( включая иконки) посылаются в .\  и они показываются без проблем. картинки они говорят класть StartUp\Documents и они не открываются.

Перепробовал все варианты .  Имя файла конечно указываю полное "pic.png"    

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

как я могу забыть если я уже двадцать версий перепробовал. и .\  и  ./  и  StartUp\Documents и  StartUp\Documents\ ....

 

и файл записывал "pic.png"  и  L"pic.png". Кстати что этот L даёт ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, chaplin.u@gmail.com сказал:

и файл записывал "pic.png"  и  L"pic.png". Кстати что этот L даёт ?

Может так?

u"pic.png"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

и как мне написать FileName чтобы запустить   System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), FileName)  ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Покажите код где присваиваеться FileName.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1. вот деплой :i2.JPG

2. вот код 

а - Result = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), L"Image_640x960.png");
     Image2->Bitmap->LoadFromFile(Result);

в -  Result = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), "Image_640x960.png");
     Image2->Bitmap->LoadFromFile(Result);

3. а в результате

-i1.JPG

проверил уже на последней версии АйОси - 10.2

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Добавьте проверку на наличие файла. Ваш код выдает ошибку, но вы не знаете причину ошибки - отсутствие файла или ошибка в процессе LoadFromFile

  AFilePath:=System.IOutils.TPath.Combine(System.IOutils.TPath.GetDocumentsPath, 'Image_640x960.png');
  if TFile.Exists(AFilePath) then
    Image2.Bitmap.LoadFromFile(AFilePath)
  else
    ShowMessage('File not found');

 

chaplin.u@gmail.com и Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

хороший совет. добавлю но это не исправит положение т.к понятно что он его не находит а в этой АйОси нет никакого файл менеджера чтобы посмотреть что куда идёт.

На Андроиде этот код работает на ура.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

а можно попросить у кого деплоится добавить такую строчку в код :

ShowMessage("FullPath="+System::Ioutils::TPath::GetFullPath(FileName));

типа посмотреть куда это идёт когда работает правильно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

как я вижу никто на iOS не деплоит ну тогда хоть скажите где настраивается переменная  "StartUp" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Все используют деплой, вот попробуйте этот проект запустить у себя

Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

ну так вставьте строчку которая скажет где у вас лежит файл. тогда я смогу сравнить. есть версия что у меня в настройках не то место указано и получается не синхрон. ваш проект я не могу запустить на моём бильдере. 

и повторю вопрос - где этот StartUp настраивается и кем ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Цитата

хороший совет. добавлю но это не исправит положение т.к понятно что он его не находит

Рекомендацию Евгения Корепова выполнили? Проверили?

У меня С++ Builder и все работает на iOS:

String path = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), L"count.ini");
 if(FileExists(path))
	 {
      //нужный код
	 }

count.ini в деплойменте тут StartUp\Documents\

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

добавил, проверил. файла на месте нет. у меня всё тоже. и код и путь. 

можете вставить строчку описанную выше ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

какой добрый форум. прямо от ответов обоя нет. все кинулись помогать... 

если бы не парень в гавайской рубашке так и ждал бы до такой же бороды

ну хоть так узнал в чём затык. это путь где аппликация ищет файл у меня :

 i1.JPG

а это у парня :

iosscreencapture_10042-200x300.jpg

сразу видно что это не тоже самое. а теперь вопрос к добрым людям - где это настраивается ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
11 минут назад, Камышев Александр сказал:

путь для deploiment .\assets\internal\

ему необходимо для IOS

42 минуты назад, chaplin.u@gmail.com сказал:

а теперь вопрос к добрым людям - где это настраивается ?

это не настраивается, т.к. выбора куда ложить свои файлы нету. система не разрешит положить в "левую" папку

Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
В 14.03.2017 в 00:21, chaplin.u@gmail.com сказал:

1. вот деплой :i2.JPG

2. вот код 

а - Result = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), L"Image_640x960.png");
     Image2->Bitmap->LoadFromFile(Result);

в -  Result = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), "Image_640x960.png");
     Image2->Bitmap->LoadFromFile(Result);

3. а в результате

-i1.JPG

проверил уже на последней версии АйОси - 10.2

 

Попробуйте StartUp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

А еще рекомендую ознакомиться с этой справкой: Standard RTL Path Functions across the Supported Target Platforms

Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

так вот же в справке написано тоже что и у дядьки : A typical result is: Device: '/var/mobile/Applications/<application ID>/Documents'

Какого лешего у меня Containers... влезает ! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
  • Прикрепите проект.
  • Укажите версию iOS, на которой тестируете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
3 часа назад, chaplin.u@gmail.com сказал:

Какого лешего у меня Containers... влезает

 

5 часов назад, chaplin.u@gmail.com сказал:

сразу видно что это не тоже самое. а теперь вопрос к добрым людям - где это настраивается ?


путь для IOS7 и более ранних:  /var/mobile/Applications/<application ID>  
путь для IOS8 и выше /var/mobile/Containers/Data/Application/<application ID>

Kitty понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу