• 0
chaplin.u@gmail.com

файл не находится

Вопросы

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

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

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

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

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


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

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

  • 0

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

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

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


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

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

В Android assets\internal. 

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

Изменено пользователем Alex7wrt

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


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

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

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

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

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


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

проверьте деплой в билд-конфигах (Debug/Release), возможно забыли добавить.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 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

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');

 

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


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

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

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

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


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

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

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

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

 

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
  • 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 сказал:

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
  • 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

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


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

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
  • 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>

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу