Для приложения iPhone Firemonkey я храню файлы (изображения) в папке 'tmp' и использую их в своем приложении. Я хочу иметь возможность очистить кэш, удалив, скажем, все файлы .jpg по требованию, но я не могу программно сопоставить их в вызове FindFirst () .
Я использую простой цикл FindFirst () / FindNext () / FindClose () для отображения (и удаления) содержимого папки.
Под окнами код работает отлично. Одно и то же приложение под iOS (iPhone) всегда возвращает значение -1 (ошибка) для вызова FindFirst () , а SearchRec.Name пусто. Я пытался использовать различные шаблоны файлов, включая '. ', но безуспешно.
Я знаю, что файлы существуют, потому что я могу читать и писать в них (как под iOS, так и под Windows) без ошибок, и их содержимое корректно. A FileExists () check также возвращает True.
Кроме того, если я указываю шаблон файла без подстановочного знака, для проверки на наличие известного файла (который на самом деле не является точкой вызова FindFirst () ), вызов никогда не возвращается (опять же, это хорошо под окнами)!
Кто-нибудь имел успех с этим под iOS и может предложить какие-нибудь мысли?
Спасибо
РЕДАКТИРОВАТЬ: фрагмент кода по запросу, который демонстрирует проблему.
Примечание: _sFolderName содержит имя папки кеша, которое, как я подтвердил, определенно верно.
function GetCacheFileList : string;
var
iResult: integer;
sr: TSearchRec;
sPath,
sTemp: string;
sFilename : TFilename;
begin
sTemp := '';
sFilename := _sFolderName + '*.jpg';
//
iResult := FindFirst(sFilename, faAnyFile, sr); // ALWAYS RETURNS -1 under iOS
while (iResult = 0) do
begin
sTemp := sTemp + sr.Name + sLineBreak;
iResult := FindNext(sr)
end; { while }
//
FindClose(sr);
Result := sTemp
end;